Aktivieren Fliesen devmode wie Struts' devmode mit jeder Anforderung neu zu laden tiles.xml

StackOverflow https://stackoverflow.com/questions/2412604

  •  18-09-2019
  •  | 
  •  

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?

War es hilfreich?

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
scroll top