我们有一个使用Tiles 2.1.4 & Spring 3.2.8
的项目,我正在尝试将其升级为Tiles 2.2.2 & Spring 4.3.1
。用于配置Tiles的代码如下:
import org.apache.tiles.TilesException;
import org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO;
import org.apache.tiles.renderer.impl.BasicRendererFactory;
import org.springframework.web.servlet.view.tiles2.TilesConfigurer;
import java.util.Properties;
public class DefaultTilesConfigurer extends TilesConfigurer {
....
@Override
public void afterPropertiesSet() throws TilesException {
//set default properties
Properties props = new Properties();
props.setProperty(BasicRendererFactory.TYPE_RENDERERS_INIT_PARAM, "template,"+SkinTemplateAttributeRenderer.class.getName());
props.setProperty(BasicRendererFactory.DEFAULT_RENDERER_INIT_PARAM, UntypedSkinAttributeRenderer.class.getName());
props.setProperty(CachingLocaleUrlDefinitionDAO.CHECK_REFRESH_INIT_PARAMETER, Boolean.toString(refreshable));
super.setTilesProperties(props);
//initialize
super.afterPropertiesSet();
}
}
在org.springframework.web.servlet.view.tiles2.TilesConfigurer#setTilesProperties
中删除了Tiles 2.2
。我检查了Apache的2.1和2.2配置页面,但我不明白如何使用相同的参数配置Tiles 2.2。
...谢谢
答案 0 :(得分:1)
你需要强烈考虑使用Tiles 2.2和Spring 4 given that it's officially deprecated in favor of Tiles 3.0是否有意义。为什么不升级到Tiles 3呢?
话虽如此,Spring 3中的TilesConfigurer#setTilesProperties()
相当于在init-param
上下文中设置TilesServlet
元素,因此您可以将配置移动到web.xml
文件,例如
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.renderer.impl.BasicRendererFactory.DEFAULT_RENDERER_INIT_PARAM
</param-name>
<param-value>
com.test.UntypedSkinAttributeRenderer
</param-value>
</init-param>
...
</servlet>
注意:上述内容在Tiles 2.2中已弃用。
警告!!!不推荐使用初始化参数进行配置! 如果您仍想使用它,请参阅本页的2.1版本。
参考文献:
https://tiles.apache.org/2.1/framework/tutorial/configuration.html