2013-04-24 85 views
2

在我的Spring應用程序中使用Apache磁貼之前,我想確認一下,如果apache磁貼重新加載所有佈局屬性(例如頁眉,菜單,正文,頁腳),正在加載一個新頁面。apache瓷磚每次都會刷新所有屬性嗎?

你能否確認它適用於每一個新的頁面加載?另外,哪個更好的選擇使用阿賈克斯div負載vs阿帕奇瓷磚?

回答

0

servlet容器會注意到您的JSP文件中的更改並重新編譯它們(當然,如果它沒有配置其他的);例如,當你改變

<title><tiles:insertAttribute name="foo" /></title> 

<title><tiles:insertAttribute name="bar" /></title> 

瓷磚的定義(即tiles.xml文件)僅在默認情況下在啓動時加載。根據the documentation,如果需要,您可以添加應該重新加載圖塊定義的過濾器。

<filter> 
    <filter-name>Tiles Filter</filter-name> 
    <filter-class>org.apache.tiles.web.startup.TilesFilter</filter-class> 
    <init-param> 
     <param-name> 
      org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG 
     </param-name> 
     <param-value> 
      /WEB-INF/tiles-defs.xml,/org/apache/tiles/classpath-defs.xml 
     </param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>Tiles Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

不幸的是,它似乎沒有在我的情況下工作。

Another source建議使用這個代替:

<context-param> 
    <param-name>org.apache.tiles.definition.dao.LocaleUrlDefinitionDAO.CHECK_REFRESH</param-name> 
    <param-value>true</param-value> 
</context-param> 

...但是這並沒有爲我工作的。


回覆:「AJAX DIV負荷VS阿帕奇磚」:我不完全知道你的第一個意思,假設這將在通過AJAX運行時獲取HTML片段,我相信會瓷磚因爲頁面將在服務器端生成,所以在AJAX解決方案中,用戶的瀏覽器必須一點一點地組裝它。這一切都取決於你的用例,真的(頁面的動態性如何?它在用戶會話期間是否改變?)