Result类型
- dispatcher
- redirect
- chain
- redirectAction
- freemarker
- httpheader
- stream
- velocity
- xslt
- plaintext
- tiles
struts.xml
View Code
<struts>
<constant name="struts.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1">
<!-- 服务器跳转, 跳转jsp等页面 不能是action -->
<result type="dispatcher">/r1.jsp</result>
</action>
<action name="r2">
<!-- 客户端跳转 页面 也不能是action -->
<result type="redirect">/r2.jsp</result>
</action>
<action name="r3">
<!-- forward 方式 客户端跳转 可以是action-->
<result type="chain">r1</result>
</action>
<action name="r4">
<!-- 客户端跳转到另一个action-->
<result type="redirectAction">r2</result>
</action>
</package>
</struts>
JSP
View Code
<a href="r/r1">dispatcher</a>
<a href="r/r2">redirect</a>
<a href="r/r3">chain</a>
<a href="r/r4">redirectAction</a>
注意访问地址栏的变化及页面显示。
<result type="chain">r1</result>
要是跳到不同的包下,需要加参数。请参看文档。
重定向和转发的区别
1. 重定向时浏览器上的网址改变 转发是浏览器上的网址不变
2. 重定向实际上产生了两次请求 转发只有一次请求
3. 重定向时的网址可以是任何网址 转发的网址必须是本站点的网址
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。