是否阿帕奇瓷砖具有像Struts一个devMove将重新加载与每个请求tiles.xml文件?如果是这样,这怎么能启用?

有帮助吗?

解决方案

我用瓷砖,但从来没有试图动态地重新加载它。

但是,此页: http://tiles.apache.org/tutorial/configuration。 HTML

表示:

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

其他提示

下面是使用的过滤器而不是监听另一个工作构造。 (因为瓷砖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>

下面我已经使用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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top