2011-05-10 28 views
0

我有一個彈簧控制器設置了一些值來請求並顯示一個jsp頁面。對於我們使用拼貼的視圖部分。結果頁面包含3個部分,標題,內容和頁腳jsp's。 這個頭文件jsp使用一個java文件,我想從這個文件訪問第一個spring controller創建的屬性。有沒有辦法做到這一點,而不使用會話? 當我嘗試request.getAttribute時,它給出null。我認爲這是因爲它不是請求值設置後的立即文件。在servlet和java文件之間傳遞值

+0

你是否有formbean爲你的看法? – developer 2011-05-10 07:48:47

+0

不,我不使用formbean – coder247 2011-05-10 09:42:13

回答

1

只要所有內容都運行在相同的請求中,並且在查看部分之前執行了控制器代碼,setAttribute()應該可以工作。要調試這樣的問題,請使用Filter將請求URL和屬性轉儲到控制檯或日誌。

如果這些調用是在不同的請求中,你有兩個選擇:會話和Spring bean(使用會話bean或你自己的實現)。我更喜歡bean,因爲它們是類型安全的,它們允許我將代碼從複雜的Servlet API中分離出來進行測試。

+0

我可以看到過濾器中的值 – coder247 2011-05-10 09:56:20

+0

而您的視圖代碼在過濾器完成之前運行?如果是,則有人刪除該值或視圖獲取由另一個過濾器創建的新請求實例。 – 2011-05-11 08:35:25

1

你真的需要放一些代碼來獲得代碼的答案,但除非你使用JSP腳本,否則我猜這是你在標題中使用的Java bean。這當然不能訪問請求(因此會話),也不應該真的。如果你想讓它有權訪問請求/會話,你可能想要做的就是將它轉換爲標籤庫。