參考文章:http://7979281.blog.51cto.com/7969281/1308151
方法:
action result的配置中,設置type屬性:
dispatcher:轉向頁面,通常處理JSP,爲默認設置
redirect:重定向到一個URL
chain:處理Action鏈
redirectAction:重定向到一個action
例如:
//home是個action
<action name="login" class="controllers.EnterAction" method="login">
<result name="success" type="chain">home</result>
<result name="error">/login.jsp</result>
</action>
分析:
各個屬性值詳解如下:
dispatcher:略。
redirect:重定向,底層調用的是response.sendRedirect("...")方法,無法共享請求範圍內的數據,新頁面無法 顯示第一個action中的數據。參數與dispatcher用法相同。一個具體的應用場景是,用戶在首頁登錄 輸入密碼錯誤時,可用redirect回到首頁,這時用戶剛輸入的用戶名、密碼都被清空。
chain:將action的帶着原來的狀態請求轉發到新的action,兩個action共享一個ActionContext,actionName 指定 轉向的新的action的名字,method指定轉向哪個方法,namespace指定新的action的名稱空 間,不寫表示與原action在相同的名稱空間。
redirectAction:重定向到另一個action,參數與chain用法相同,無另外配置時原action數據不帶入新action。 允許將原action中的指定屬性指定新名稱帶入新action中,可以在result標籤中添加<param name=”b”>${a}</param>,這表示原action中的變量a的值被轉給b,下一個action可以在值棧中 使用b來操作,注意如果值是中文,需要做一些編碼處理,因爲Tomcat默認不支持URL直接傳遞中。