`

struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)

阅读更多

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>

分享到:
评论

相关推荐

    struts2中的result的type类型

    struts2 跳转类型 result type chain dispatcher redirect redirect action

    Struts2 Result类型

    开发者可以根据需求选择合适的Result类型,通过在`struts.xml`配置文件中定义result元素,指定name(通常为Action的返回码)和type(对应Result类型),以及对应的资源路径,来实现Action执行后的页面跳转或数据处理...

    struts2 result配置详解

    在 Struts2 框架中,Redirect 和 Redirect-action 是两个不同的 Result 配置类型。Redirect 配置用于重定向到一个新的 URL,而 Redirect-action 配置用于重定向到一个 Action。 Redirect-action 配置可以省略后缀名...

    Struts2--result配置的各种视图转发类型

    在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...

    struts2的action的几种result type说明

    2. **chain**: Chain Result Type允许你链式执行多个Action,无需返回到客户端。`class="com.opensymphony.xwork2.ActionChainResult"`。这样可以在一个流程中连续执行多个业务操作。 3. **freemarker**: ...

    Struts2学习资源Result part1.rar

    默认情况下,如果未明确指定Result类型,那么Struts2会默认使用"dispatcher",它将请求分发到一个JSP页面。然而,Struts2提供了多种Result类型,以满足不同场景的需求。 1. **dispatcher**: 这是最常见的Result类型...

    struts2结果类型

    总结而言,`dispatcher`、`redirect` 和 `chain` 是 Struts2 中三种重要的结果类型,它们分别用于页面转发、HTTP 重定向以及 Action 之间的链式调用。了解这些结果类型的使用方法和实现原理对于使用 Struts2 进行 ...

    Struts2 result和type

    ### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...

    SSH笔记-result标签的type的使用

    本笔记将深入探讨`Result`标签的`type`属性以及其不同类型的用法,包括`dispatcher`、`chain`、`redirect`、`redirectAction`和`stream`。 首先,`dispatcher`是最常用的`Result`类型,它将请求转发到指定的页面。...

    Struts2_result返回类型

    `Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理策略,使得开发者可以根据需求选择合适的方式。 首先,我们来看几个常见的返回...

    信息系统软件设计:要懂Struts必须要懂的程序(2).ppt

    Struts提供了多种Result类型,如dispatcher用于转向页面,redirect用于重定向,chain处理Action链等。 4. **动态Result配置**: 动态Result允许根据Action执行情况决定调用哪个结果。例如,`&lt;result name="success...

    Struts2技术总结

    6. **灵活的结果类型:** Struts2支持多种结果类型,包括dispatcher(转发)、redirect(重定向)、chain(链式调用)等,使得页面跳转更加灵活多样。 #### 二、Struts2项目搭建与配置 要构建一个基于Struts2的Web...

    Struts2 Result 参数详解

    在`struts-default.xml`配置文件中,Struts2预先定义了这些Result类型,并指定了默认的Result类型为`dispatcher`。配置Result时,可以通过`&lt;param&gt;`标签设置额外的参数,比如指定JSP页面的路径、重定向的URL等。 ...

    Struts 2.0结果集类型

    Struts 2.0 结果集类型是框架中一个核心的概念,它定义了Action执行后如何跳转到不同的页面或执行不同的操作。在Struts 2.0中,每个Action都可以有多个可能的结果,这些结果被称为结果类型或者Result Types。它们...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    "Struts2 strus.xml中result类型及含义.doc"将涵盖不同的Result类型,如dispatcher(默认),redirect,stream等,它们决定了请求处理后的页面重定向方式。 "Struts2教程3:struts.xml常用配置解析 .doc"深入解析了...

    struts2权威指南第5章第5.1-5.2节代码

    本章节主要关注的是Struts2的两个关键部分:拦截器(Interceptors)和结果类型(Result Types),它们是Struts2实现业务逻辑控制和视图跳转的核心机制。 5.1 节 - Struts2 拦截器 拦截器是Struts2框架的核心组件之...

    Struts2学习笔记

    - **Result类型**:Struts2提供了多种类型的结果集,包括`dispatcher`、`redirect`、`chain`等。 - **全局结果集**:定义在`&lt;package&gt;`级别的结果集,适用于包内的所有Action。 - **动态结果集**:通过`&lt;result-type...

Global site tag (gtag.js) - Google Analytics