边境杀手土豆:struts2 跳转类型 result 总结大全

来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 08:36:00

dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp)
Xml代码 :

/main.jsp
/main.jsp
以上写法使用了两个默认,其完整的写法为: 

        /maini.jsp

用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存在。
location只能是页面,不能是另一个action(可用type="chain"解决)。

 

redirect 类型用于重定向到一个页面,另一个action或一个网址。
Xml代码:

aaa.jsp
bbb.action
www.baidu.com

缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。

处理方法:

(方法一):
/topicAction!findTopics.do?topicId=${topicId}
(方法二):

findTopics
${topicId}

 

redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action
Xml代码:


    重定向的Action名
     重定向Action所在的名字空间

redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。

 

chain 用于把相关的几个action连接起来,共同完成一个功能。
Xml代码:


     step2.action


finish.jsp

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


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

Xml代码:


    具体的位置
    字符规范(如GBK)