1. 程式人生 > >Struts框架之結果頁面的跳轉

Struts框架之結果頁面的跳轉

1. 結果頁面存在兩種方式
    * 全域性結果頁面(有很多時候我們會跳轉到同一頁面,所以我們可以配置一個全域性結果頁面,不管什麼情況都會跳轉到這個頁面)
        > 條件:如果<package>包中的一些action都返回success,並且返回的頁面都是同一個JSP頁面,這樣就可以配置全域性的結果頁面。
        > 全域性結果頁面針對的當前的包中的所有的Action,但是如果區域性還有結果頁面,會優先區域性的。使用的標籤是
            <global-results>
                <result>/demo3/suc.jsp</result>
            </global-results>
    如果返回的是success,則我們統一跳轉到同一頁面。在package標籤中寫如上的global-results標籤。這樣就不用在action表現中寫區域性頁面跳轉了
    * 區域性結果頁面(我們在action標籤中寫的result標籤,屬於區域性結果頁面跳轉)
<result>/demo3/suc.jsp</result> 2. 結果頁面的型別 * 結果頁面使用<result>標籤進行配置,包含兩個屬性 > name -- 邏輯檢視的名稱 > type -- 跳轉的型別,值一些,需要掌握一些常用的型別。常見的結果型別去struts-default.xml中查詢。 * dispatcher -- 轉發.type的預設值.Action--->JSP * redirect -- 重定向. Action--->JSP(這樣request域就無效了) * chain -- 多個action之間跳轉.從一個Action轉發到另一個Action. Action---Action * redirectAction -- 多個action之間跳轉.從一個Action重定向到另一個Action. Action---Action * stream -- 檔案下載時候使用的

  舉例說明多個Action之間的跳轉:

  書寫Demo3Action類,在該類中書寫了兩個方法,我們演示一下從自己的action中的save跳轉到自己action中的del方法:
package com.huida.action;

import com.opensymphony.xwork2.ActionSupport;

public class Demo3Action extends ActionSupport{
//現在想要實現從自己Action中的save跳到自己Action中的del
    //Demo3Action save--->Demo3Action del
    public String save(){
        System.out.println(
"save"); return SUCCESS; } public String del(){ System.out.println("delete"); return SUCCESS; } }

    對action進行配置:

<struts>
    
    <package name="default" namespace="/" extends="struts-default">
    
        <action name="demo3Action_*" class="com.huida.action.Demo3Action" method="{1}"><!-- 萬用字元的方式 -->
           <result name="success" type="redirectAction">/demo3Action_del</result><!-- 從demo1Action中跳轉到suc.jsp頁面,預設的方式為請求轉發的方式。如果在result標籤中設定轉發型別為重定向redirect,那麼在request域中就不能通過put獲取到值 -->
        </action>
    </package>

</struts>

    使用萬用字元的方式進行函式的訪問。啟動瀏覽器,在搜尋欄中輸入:http://localhost:8080/struts2_day02/demo3Action_save進行訪問,訪問結束後會跳轉到 demo3Action中的del方法中。在控制檯會輸出如下,表示對save和del方法的訪問: