Aktivieren Fliesen devmode wie Struts' devmode mit jeder Anforderung neu zu laden tiles.xml
Frage
Hat Apache Tiles eine devMove wie Struts, die die tiles.xml Datei mit jeder Anforderung neu zu laden würde? Wenn ja, wie kann diese aktiviert werden?
Lösung
Ich habe verwendet Fliesen, aber haben nie versucht, dynamisch es neu zu laden.
Allerdings ist diese Seite: http://tiles.apache.org/tutorial/configuration. html
sagt:
Load the Tiles filter. It is useful if your definition files can be changed and you periodically need to reload them.
Andere Tipps
Hier ist eine weitere Arbeitskonfiguration, die Zuhörer statt Filter verwendet. (Da Fliesen 2.1.2)
In 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>
In der folgenden gearbeitet hat für mich Fliesen 2.2.2 innerhalb Servlet-Container verwendet wird.
....
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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow