Struts2 result各種轉發類型


重點:chain dispatcher redirect redirectAction stream

dispatcher:是最常用的結果類型,代表的是請求轉發,也是struts2框架默認的類型,一般用於從action跳轉到一個頁面。將控制權轉發給程序裏的某個資源,不能是外部資源,若需要把控制權重定向到一個外部資源,應該使用redirect結果類型。
redirect:重定向要另一個資源,而不是轉發,一般用於從action跳轉到一個頁面。
redirectAction: 代表重定向 它一般用於從action跳轉另一個action。
stream:代表的是服務器端返回的是一個流,一般用於下載。
chain:相當於請求轉發。它一般情況下用於從一個action跳轉到另一個action。


下面是redirectAction 結果類型的例子,

如果重定向的action中同一個包下:

   /test下面的action跳轉到/test下面的action
   <result type="redirectAction">methodTest1</result>
   或者
   <result type="redirectAction">
   <param name="actionName">methodTest1</param>
   <param name="namespace">/test</param>
    </result>

如果重定向的action在別的命名空間下:
不同的倆個package下面的action跳轉

    /test下面的action跳轉到/user下面的action
    <result type="redirectAction">
    <param name="actionName">mytest</param>
    <param name="namespace">/user</param>
    </result>

<struts>
    //全局
    <package name="base" extends="struts-default">
        <global-results>
            <result name="message">/WEB-INF/page/message.jsp</result>
        </global-results>
    </package>

    <package name="itcast" namespace="/control/employee" extends="base">    
        //重定向
        <action name="list" class="cn.itcast.action.HelloWorldAction" method="execute">
            <result name="success" type="redirect">/employeeAdd.jsp?username=${username}</result>
        </action>
        //默認走上面的全局
        <action name="manage" class="cn.itcast.action.HelloWorldAction" method="add">
        </action>

        1>如果沒有爲action指定class,默認是ActionSupport。
        2>如果沒有爲action指定method,默認執行action中的execute() 方法。
        3>如果沒有指定result的name屬性,默認值爲success。
        <action name="redirect">
            <result type="redirect">/employeeAdd.jsp</result>
        </action>

        //重定向action 可以跳到下一個package包中的action
        <action name="redirectAction">
            <result type="redirectAction">
                <param name="actionName">xxx</param>
                <param name="namespace">/control/department/xdsfdsfds/435435</param>
            </result>
        </action>
        //顯示原始文件內容
        <action name="plainText">
            <result type="plainText">
                <param name="location">/index.jsp</param>
                <param name="charSet">UTF-8</param><!-- 指定讀取文件的編碼 -->
            </result>
        </action>
    </package>

    <package name="other" namespace="/control/department" extends="base">
        <action name="manage" class="cn.itcast.action.HelloWorldAction" method="add">
        </action>
        <action name="xxx">
            <result>/WEB-INF/page/hello.jsp</result>
        </action>
    </package>
</struts>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章