struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
2011-09-09 13:21:27| 分类: struts |字号 订阅
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>
From:
http://ljm426.blog.163.com/blog/static/120003220118912127442/?fromdm&fromSearch&isFromSearchEngine=yes
分享到:
相关推荐
struts2 跳转类型 result type chain dispatcher redirect redirect action
开发者可以根据需求选择合适的Result类型,通过在`struts.xml`配置文件中定义result元素,指定name(通常为Action的返回码)和type(对应Result类型),以及对应的资源路径,来实现Action执行后的页面跳转或数据处理...
在 Struts2 框架中,Redirect 和 Redirect-action 是两个不同的 Result 配置类型。Redirect 配置用于重定向到一个新的 URL,而 Redirect-action 配置用于重定向到一个 Action。 Redirect-action 配置可以省略后缀名...
在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...
2. **chain**: Chain Result Type允许你链式执行多个Action,无需返回到客户端。`class="com.opensymphony.xwork2.ActionChainResult"`。这样可以在一个流程中连续执行多个业务操作。 3. **freemarker**: ...
默认情况下,如果未明确指定Result类型,那么Struts2会默认使用"dispatcher",它将请求分发到一个JSP页面。然而,Struts2提供了多种Result类型,以满足不同场景的需求。 1. **dispatcher**: 这是最常见的Result类型...
总结而言,`dispatcher`、`redirect` 和 `chain` 是 Struts2 中三种重要的结果类型,它们分别用于页面转发、HTTP 重定向以及 Action 之间的链式调用。了解这些结果类型的使用方法和实现原理对于使用 Struts2 进行 ...
### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...
本笔记将深入探讨`Result`标签的`type`属性以及其不同类型的用法,包括`dispatcher`、`chain`、`redirect`、`redirectAction`和`stream`。 首先,`dispatcher`是最常用的`Result`类型,它将请求转发到指定的页面。...
`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理策略,使得开发者可以根据需求选择合适的方式。 首先,我们来看几个常见的返回...
Struts提供了多种Result类型,如dispatcher用于转向页面,redirect用于重定向,chain处理Action链等。 4. **动态Result配置**: 动态Result允许根据Action执行情况决定调用哪个结果。例如,`<result name="success...
6. **灵活的结果类型:** Struts2支持多种结果类型,包括dispatcher(转发)、redirect(重定向)、chain(链式调用)等,使得页面跳转更加灵活多样。 #### 二、Struts2项目搭建与配置 要构建一个基于Struts2的Web...
在`struts-default.xml`配置文件中,Struts2预先定义了这些Result类型,并指定了默认的Result类型为`dispatcher`。配置Result时,可以通过`<param>`标签设置额外的参数,比如指定JSP页面的路径、重定向的URL等。 ...
Struts 2.0 结果集类型是框架中一个核心的概念,它定义了Action执行后如何跳转到不同的页面或执行不同的操作。在Struts 2.0中,每个Action都可以有多个可能的结果,这些结果被称为结果类型或者Result Types。它们...
"Struts2 strus.xml中result类型及含义.doc"将涵盖不同的Result类型,如dispatcher(默认),redirect,stream等,它们决定了请求处理后的页面重定向方式。 "Struts2教程3:struts.xml常用配置解析 .doc"深入解析了...
本章节主要关注的是Struts2的两个关键部分:拦截器(Interceptors)和结果类型(Result Types),它们是Struts2实现业务逻辑控制和视图跳转的核心机制。 5.1 节 - Struts2 拦截器 拦截器是Struts2框架的核心组件之...
- **Result类型**:Struts2提供了多种类型的结果集,包括`dispatcher`、`redirect`、`chain`等。 - **全局结果集**:定义在`<package>`级别的结果集,适用于包内的所有Action。 - **动态结果集**:通过`<result-type...