2016-07-07 28 views
0

我们有一个使用Tiles 2.1.4 & Spring 3.2.8的项目,我试图将其升级到Tiles 2.2.2 & Spring 4.3.1。用于配置瓷砖的代码是这样的:从瓷砖2.1.4迁移到2.2.2 - 删除了基于属性的配置

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

谢谢...

回答

1

你需要认真考虑是否有意义用瓷砖2.2与Spring 4,given that it's officially deprecated in favor of Tiles 3.0。为什么不升级到Tiles 3?

话虽这么说,TilesConfigurer#setTilesProperties()在春季3等同于对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中已弃用。

警告!!!带有初始化参数的配置已弃用! 如果你仍然想使用它,请参阅本页的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

+0

嗨@ CK1,我绝对同意你关于升级到瓷砖3,但它意味着重新编写大量的代码,在我们的应用程序。感谢您的回复。 – GokcenG