dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp)
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"解决)。
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)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的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>
redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action
Xml代码:
<result name="err" type="redirect-action">
<param name="actionName">重定向的Action名</param>
<param name="namespace">重定向Action所在的名字空间</param>
</result>
redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。
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
plaintextj 结果类型用于直接在页面上显示源代码
Xml代码:
<result name="err" type="plaintext">
<param name="location">具体的位置</param>
<param name="charSet">字符规范(如GBK)</param>
</result>
分享到:
相关推荐
著名的K8_Struts2_漏洞利用工具,可利用Struts2_漏洞进行任意代码执行和任意文件上传。 本工具仅供学习交流,请勿用于任何非法活动。
传智2016的视频配套struts2_day03讲义struts2_day03讲义struts2_day03讲义
传智2016框架视频配套讲义----struts2_day04讲义.pdf ,需要的下载了
双鱼林struts2_hibernate人事工资管理系统 自带数据库
学习Struts2第三天笔记
在struts2的返回结果配置中,我们大部分情况使用默认的或者chain或者redirect,其实struts2还有很多其他类型的,今天我们就来看一下都有哪些类型。 打开struts2的源码中struts-default.xml文件,我们能看到如下配置
[轻量级Java_EE企业应用实战_Struts2_Spring3_Hibernate整合开发
基于Struts2_Android的手机广告平台设计与实现,绝对有用的资源
netbeans7.2_struts2_plugin插件
struts2_jar 项目搭建中常用的包
Struts2_04ActionResultType : Struts2关于Action跳转类型的应用 对各种不同的跳转类型使用的实例 Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用
struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2) struts2_(2)
K8_Struts2_EXP S2-045 & 任意文件上传 20170310,无密码,2017版,最新版
官方描述: ... ... 官方建议修复方案:升级到最新版本 struts-2.3.15.1 但通常现有系统升级,可能导致不稳定及与其他...鉴于此csdn网友jzshmyt整理了一种既可以不用升级现有struts版本,有能完美解决这两个漏洞的方案,
基于struts2_hibernate3+oracle.1_dwr开发的学生管理系统
struts漏洞检测利用工具,最新检测的漏洞为s2-046,过waf版
K8_Struts2_EXP 20170310是一款用于检测项目是否存在Struts系列漏洞的工具,切勿用于恶意破坏,如果造成法律效应作者概不负责。切记,切记,切记!
Struts2_0500_ActionMethodStruts2_0500_ActionMethodStruts2_0500_ActionMethod
20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction20110930_Struts2_0100_Introduction
struts2_lib struts2_lib struts2_lib struts2_lib