Est-ce que Apache Tiles a un devMove comme Struts qui rechargerait le fichier tiles.xml à chaque requête? Si oui, comment cela peut-il être activé?Activer les mosaïques devMode comme le devMode de Struts pour recharger tiles.xml avec chaque requête
3
A
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();