您的位置:首页 > 编程语言 > Java开发

struts2跳转类型解析

2015-10-14 08:47 543 查看


struts 2 跳转类型

1.dispatcher

dispatcher 为默认跳转类型。用于返回一个视图资源

xml代码 :

<result name="success">/main.jsp</result>

<result name="success">/main.jsp</result>

以上写法使用了两个默认。其完整的写法为:

<result name="success" type="dispatcher">

<param name="location">/maini.jsp</param>

</result>

用于页面转发,页面跳转过程一直是同一个线程。Action中的数据一直保存在。

location仅仅能是页面,不能是还有一个action(可用type="chain"解决)。

2.redirect

redirect 类型用于重定向到一个页面,还有一个action或一个网址。



Xml代码:

<result name="success" type="redirect">aaa.jsp</result>

<result name="success" type="redirect">bbb.action</result>

<result name="success" type="redirect">www.baidu.com</result>

缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起又一次发给webserver,容纳后由webserver产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action运行的线程中的数据就无法訪问。

所以,result须要包括Action的数据。那么redirect不是一个可行的办法。由于新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的全部状态都不会存在。

处理方法:

(方法一):

<result name="topic" type="redirect">/topicAction!findTopics.do?

topicId=${topicId}</result>

(方法二):

<result name="topic" type="redirect-action">

<param name="actionName">findTopics</param>

<param name="topicId">${topicId}</param>

</result>

3.chain

chain 用于把相关的几个action连接起来,共同完毕一个功能。

Xml代码:

<action name="step1" class="test.Step1Action">

<result name="success" type="chain">step2.action</result>

</action>

<action name="step2" class="test.Step2Action">

<result name="success">finish.jsp</result>

</action>

处于chain中的action属于同一个http请求。共享一个ActionContext

4.plaintext

plaintext 结果类型用于直接在页面上显示源码

Xml代码:

<result name="err" type="plaintext">

<param name="location">详细的位置</param>

<param name="charSet">字符规范(如GBK)</param>

</result>

原文地址:http://hi.baidu.com/foreverfly8/item/4bfae9cc04abb80c0bd93a79
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: