在struts2中常见的4种result type分别为:dispatcher,redirect,chain,redirectAction。
1)dispatcher是请求转发,相当于forward。
2)redirect就是重定向了。
3)chain是转发到action,不能指定于jsp。
4)redirectAction是重定向到一个action。
配置文件例子如下:
- <package name="default" namespace="/" extends="struts-default">
- <action name="test1" class="com.action.ActionTest">
- <result type="dispatcher">/r1.jsp</result>
- </action>
- <action name="test2">
- <result type="redirect">/r2.jsp</result>
- </action>
- <action name="test3">
- <result type="chain">test1</result>
- </action>
- <action name="test4">
- <result type="redirectAction">test2</result>
- </action>
- </package>
工程结构(还不让上传图片,只好用txt格式了):
-Struts2_Hello
-src
-com.action
ActionTest.java
struts.xml
-WebRoot
+META-INF
+WEB-INF
index.jsp
r1.jsp
r2.jsp
r3.jsp
r4.jsp
在index.jsp页面中,有如下连接:
- <body>
- <a href="test1" mce_href="test1">dispatcher</a><br/>
- <a href="test2" mce_href="test2">redirect</a><br/>
- <a href="test3" mce_href="test3">chain</a><br/>
- <a href="test4" mce_href="test4">redirectAction</a><br/>
- </body>
接下来访问第一个链接URL地址为:/test1,可以看出是请求转发。
第二个链接URL地址为:/r2.jsp,重定向。
第三个链接URL地址为:/test3,请求转发,页面显示r1的内容,因为test3,转发到test1的action。
第四个链接URL地址为:/r2.jsp,重定向到test2,故页面内容显示为r2.jsp的内容。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
转自:http://blog.csdn.net/ms2146/article/details/5417145