从 Tiles 2.1.4 迁移到 2.2.2 - 删除了基于 属性 的配置
Migrating from Tiles 2.1.4 to 2.2.2 - Property-based Configuration Removed
我们有一个项目正在使用 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 and 2.2 配置页面,但我不明白如何使用相同的参数配置 Tiles 2.2。
谢谢...
您需要认真考虑将 Tiles 2.2 与 Spring 4,given that it's officially deprecated in favor of Tiles 3.0 一起使用是否有意义。为什么不升级到 Tiles 3 呢?
也就是说,Spring 3 中的 TilesConfigurer#setTilesProperties()
相当于在 TilesServlet
上下文中设置 init-param
元素,因此您可以将配置移动到 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 中已弃用。
WARNING!!! Configuration with initialization parameters is deprecated!
If you still want to use it, please refer to 2.1 version of this page.
参考文献:
https://tiles.apache.org/2.1/framework/tutorial/configuration.html
我们有一个项目正在使用 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 and 2.2 配置页面,但我不明白如何使用相同的参数配置 Tiles 2.2。
谢谢...
您需要认真考虑将 Tiles 2.2 与 Spring 4,given that it's officially deprecated in favor of Tiles 3.0 一起使用是否有意义。为什么不升级到 Tiles 3 呢?
也就是说,Spring 3 中的 TilesConfigurer#setTilesProperties()
相当于在 TilesServlet
上下文中设置 init-param
元素,因此您可以将配置移动到 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 中已弃用。
WARNING!!! Configuration with initialization parameters is deprecated! If you still want to use it, please refer to 2.1 version of this page.
参考文献:
https://tiles.apache.org/2.1/framework/tutorial/configuration.html