struts2中result常见的几种转发类型:
dispatcher(默认)即内部请求转发,redirect重定向,redirectAction,chain,plainText。
|
1.dispacher方式: 默认的result方式,即内部请求转发,类似于forward
<action name="test" class="com.yyy.TestAction">
<!--在这里result中的type="dispacher" 可以缺省-->
<result name="success">/Demo.jsp </result>
</action>
<action name="test" class="com.yyy.TestAction">
<result name="success" type="redirect">/Demo.jsp </result>
</action>
在这时候。浏览器的url地址是会变化的,不在是
http://localhost:8080/hello/test.action/而是
http://localhost:8080/hello/Demo.jsp
3.redirect方式
</pre><pre name="code" class="html">
<action name="test" class="com.yyy.TestAction">
<result name="success" type="redirectAction">/Demo.action </result>
</action>
这是重定向到另外一个action中,url地址同样会变化,不是http://localhost:8080/hello/test.acion而是http://localhost:8080/hello/Demo.action
同时DemoAction必须要和TestAction在同一个package下,如果不在同一个包下的话,就要在result中加参数命名空间
<action name="test" class="com.yyy.TestAction">
<result name="success" type="redirectAction">
<param name="actionName">Demo.action<param>
<param name="nameSpace">com.yyy.abc<param>
</result>
</action>
4.chain方式 这就相当于对action的请求转发
<action name="test" class="com.yyy.TestAction">
<result name="success" type="chain">/Demo.action </result>
</action>
5.plainText这种方式一般用的比较少,常用于对代码的原样输出,在下文这种情况下,源码会出现在浏览器中
<action name="test" class="com.yyy.TestAction">
<result name="success" type="plainText"><span style="font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);">
</span><span style="color: rgb(0, 128, 128); font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);"> </span><span style="font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);"> <param name="location">Demo.jsp</param></span>
<span style="font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);"> <param name="charSet">utf-8</param>
</span><span style="color: rgb(0, 128, 128); font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);"> </span><span style="font-family: 'Lucida Console'; font-size: 13px; line-height: 24px; background-color: rgb(238, 238, 238);"> </span></result>
</action>