2012-09-28 18 views
0

我是Tiles中的新成員,我喜歡它。多個控制器的SpringFramework&Tile設計模式

我的問題是,我在SpringFramework的模板定義中得到了一個頭部,body和footer tile。 我想在頭部圖塊中顯示一些用戶信息,並用一些動態數據在頁腳中顯示最後一次登錄IP。 正如我的意思是我可以這樣做,如果我在每個使用此模板的控制器中分配(addAttribute)每個變量。

有沒有任何方法的頭/腳瓦問問自己的彈簧控制器的數據? 或者我怎樣才能在每個控制器中不重複源代碼的情況下將信息(variableValue)添加到頁眉和頁腳切片中。

感謝

回答

0

可能有幾種方法可以做到這一點,但一個方法可能是通過一個過濾器。

在你的web.xml中,你會定義一個新的過濾器並將其映射到所有網址,即

<filter> 
    <filter-name>myFilter</filter-name> 
    <filter-class>path.to.my.filter.MyFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>myFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

你會然後在<filter-class>元素指定的路徑創建一個類(path.to.my .filter.MyFilter在這種情況下)並創建實際的過濾器。對於過濾器的實現,還有幾種方法可以解決它,我建議使用Spring實現,因爲它將更容易集成。下面是我用於Flash Map實現的另一個堆棧溢出帖子的示例。它使用OncePerRequestFilter,所以每個請求都會調用這個過濾器。如果你想使用這種過濾器類型,我建議將這些值存儲在會話中,以便它們只執行一次,然後在每個請求中檢索,節省一些處理時間。

https://github.com/donkeystalk/floor41/blob/master/floor-41/src/main/java/octane/floor/filters/FlashMapFilter.java

希望這有助於。

+0

彈簧攔截解決這個(例如:http://www.dzone.com/tutorials/java/spring/spring-interceptor.html) – Barnabas

+0

要麼工作=) Spring的較新版本通過使用'RedirectAttributes'來構建這個版本http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/support/RedirectAttributes html的 – dardo

相關問題