2009-06-26 45 views
4

我繼承了一個使用Struts 1的Java網站。目前,如果在途中按下brosers返回按鈕,他們會得到一個'網頁已過期'的錯誤。Struts 1對瀏覽器後退按鈕不友好:任何解決方案?

從我有限的理解來看,這似乎是Struts設計中的一個缺陷 - 每一頁都是一種形式。無論如何要解決這個問題,還是唯一的方法是遷移到不同的MVC框架(struts2,springMVC)?

回答

1

我不認爲這有什麼固有的struts。這聽起來像以前的開發人員試圖創建某種嚮導。正確的做法是在會話中將未決結果存儲在嚮導中,並在每次提交表單後進行完全重定向。

+0

是的,它像一個嚮導,一系列頁面1-> 2-> 3-> 4-> 5-> 6 但是頁面2依賴於表格1中的數據。 你是什麼意思?完成每個表單提交後的重定向'? – Amoeba 2009-06-26 14:53:48

8

這不是一個真正的Struts問題。顯然,建立這個的人並不相信Post/Redirect/Get模式,而是直接響應表單提交來提供一個頁面。

您可以通過應用redirect="true"到你的動作向前改變這種行爲:

<action ... > 
    <forward name="success" 
     contextRelative="true" 
     path="/moduleB/index.do" 
     redirect="true"/> 
</action> 

更多信息,請參見Struts user guide