2016-09-06 63 views
4

我想爲我的JSP頁面執行重定向,URL將被更改爲/folder/mypage.jsp,而不會丟失我的請求屬性。在Struts 2中不失去請求屬性的重定向

有沒有什麼辦法可以在Struts 2中執行這種重定向?

<result type="redirect">/folder/mypage.jsp</result> 
+1

將動態參數添加到會話的結果或存儲請求屬性值中,如果您使用請求作用域變量,那麼更好地重定向到您可以將這些變量添加到請求的操作 –

+0

Roman,感謝您的建議! – youcanlearnanything

+1

任何時候有新的請求,根據定義,您將丟失當前請求的屬性/參數。你需要再次發送 - 有多種方式可以完成。它也可能是一個[XY問題](http://xyproblem.info/),因爲嚴格的「保留」請求屬性可能比它的價值更麻煩。 –

回答

3

A dispatcher結果類型是你所需要的。當使用這種類型的結果執行重定向到JSP頁面時,通過將請求轉發到新請求來將請求分派到資源。 A dispatcher結果類型是默認使用的。

<result>/folder/mypage.jsp</result> 

通過這種方式,您可以「保留」來自先前請求的所有屬性。然後,Struts過濾器可以將JSP頁面委託給默認的servlet,而不是執行動作,但是會創建動作上下文,因此您可以在JSP中使用Struts標記。