从Tiles 2.1.4迁移到2.2.2 - 删除了基于属性的配置

时间:2016-07-07 01:43:23

标签: spring apache tiles apache-tiles tiles2

我们有一个使用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.12.2配置页面,但我不明白如何使用相同的参数配置Tiles 2.2。

...谢谢

1 个答案:

答案 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

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