从 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#setTilesPropertiesTiles 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

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/view/tiles2/TilesConfigurer.html