2010-03-09 17 views

Répondre

1

J'ai utilisé des tuiles, mais je n'ai jamais essayé de les recharger dynamiquement.

Cependant, cette page: http://tiles.apache.org/tutorial/configuration.html

dit:

Load the Tiles filter. It is useful if your definition files can be changed and you periodically need to reload them. 
3

Voici une autre configuration travail qui utilise Listener au lieu de filtre. (depuis Tiles 2.1.2)

En 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

Ce qui suit a travaillé pour moi en utilisant des tuiles 2.2.2 à l'intérieur conteneur de servlets.

.... 
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();