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