重點: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>