1 16 17 package org.springframework.web.servlet.view.tiles; 18 19 import org.apache.struts.tiles.DefinitionsFactory; 20 import org.apache.struts.tiles.DefinitionsFactoryConfig; 21 import org.apache.struts.tiles.DefinitionsFactoryException; 22 import org.apache.struts.tiles.TilesUtil; 23 import org.apache.struts.tiles.xmlDefinition.I18nFactorySet; 24 25 import org.springframework.beans.factory.InitializingBean; 26 import org.springframework.util.StringUtils; 27 import org.springframework.web.context.support.WebApplicationObjectSupport; 28 29 61 public class TilesConfigurer extends WebApplicationObjectSupport implements InitializingBean { 62 63 64 private Class factoryClass = I18nFactorySet.class; 65 66 67 private boolean validateDefinitions = true; 68 69 70 private String [] definitions; 71 72 73 77 public void setFactoryClass(Class factoryClass) { 78 this.factoryClass = factoryClass; 79 } 80 81 84 public void setValidateDefinitions(boolean validateDefinitions) { 85 this.validateDefinitions = validateDefinitions; 86 } 87 88 91 public void setDefinitions(String [] definitions) { 92 this.definitions = definitions; 93 } 94 95 96 102 public void afterPropertiesSet() throws DefinitionsFactoryException { 103 logger.debug("TilesConfigurer: initializion started"); 104 105 DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig(); 107 factoryConfig.setFactoryClassname(this.factoryClass.getName()); 108 factoryConfig.setParserValidate(this.validateDefinitions); 109 110 if (this.definitions != null) { 111 String defs = StringUtils.arrayToCommaDelimitedString(this.definitions); 112 if (logger.isInfoEnabled()) { 113 logger.info("TilesConfigurer: adding definitions [" + defs + "]"); 114 } 115 factoryConfig.setDefinitionConfigFiles(defs); 116 } 117 118 createDefinitionsFactory(factoryConfig); 120 121 logger.debug("TilesConfigurer: initialization completed"); 122 } 123 124 130 protected DefinitionsFactory createDefinitionsFactory(DefinitionsFactoryConfig factoryConfig) 131 throws DefinitionsFactoryException { 132 133 return TilesUtil.createDefinitionsFactory(getServletContext(), factoryConfig); 134 } 135 136 } 137 | Popular Tags |