2010-03-09 64 views

回答

3

下面是一個使用的,而不是過濾器監聽另一個工作配置。 (因爲瓷磚2.1.2)

在web.xml:

<context-param> 
    <param-name>org.apache.tiles.definition.dao.LocaleUrlDefinitionDAO.CHECK_REFRESH</param-name> 
    <param-value>true</param-value> 
</context-param> 
<listener> 
    <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class> 
</listener> 
0

下一直逼着我用servlet容器內瓦2.2.2。

.... 
import org.apache.tiles.definition.DefinitionsFactory; 
import org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory; 
import org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO; 
import org.apache.tiles.impl.BasicTilesContainer; 
import org.apache.tiles.servlet.context.ServletUtil; 

//When using SimpleTilesListener => BasicTilesContainer is returned 
//When using StrutsTilesListener => CachingTilesContainer is returned which extends BasicTilesContainer 
BasicTilesContainer tilesCont = (BasicTilesContainer) ServletUtil.getContainer(ServletActionContext.getServletContext()); 

DefinitionsFactory defFact = tilesCont.getDefinitionsFactory(); 
Field field= UnresolvingLocaleDefinitionsFactory.class.getDeclaredField("definitionDao"); 
field.setAccessible(true); 
ResolvingLocaleUrlDefinitionDAO rludDAO = (ResolvingLocaleUrlDefinitionDAO)field.get(defFact); 
rludDAO.refresh();