`
123003473
  • 浏览: 1061786 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于Struts2_Result_Type为chain_的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返回类型

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

    struts2中常用Result类型(type)的用法和出现的问题

    在使用 chain 时,多个 action 之间的数据传递可以通过两种方式实现: 1. 由于 chain 中的 action 属于同一个 HTTP 请求,共享一个 ActionContext,故可以在上下文中获取。在页面上可以直接使用。 例如: ...

    struts2 result配置详解

    Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....

    struts2的action的几种result type说明

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

    Struts_2_in_Action

    - **Type Conversion原理**:Struts 2框架提供了强大的类型转换功能,可以自动将表单提交的数据转换为Action类所需的属性类型。 - **自定义转换器**:开发者还可以通过实现TypeConverter接口来自定义转换器,以支持...

    struts2 action跳转action传参数

    - `&lt;result name="success" type="redirectAction"&gt;action2.action&lt;/result&gt;`:表示当action1执行成功后,会触发一个重定向,跳转到`action2.action`。 - **注意**:在这种情况下,无法直接通过struts.xml配置文件...

    struts2中的result的type类型

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

    Struts2 result和type

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

    Struts2 Result类型

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

    达内培训机密资料_struts2_day03(2)

    &lt;result name="success" type="chain"&gt; &lt;param name="actionName"&gt;${session.nextAction} &lt;/result&gt; ``` ### 四、示例代码分析 1. **实体类User**: ```java public class User { private int userId; ...

    Struts2学习资源Result part1.rar

    在Struts2中,Result主要负责将处理后的数据传递给相应的视图,如JSP、HTML或者其他的静态资源。Result类型是通过配置在Action类的execute方法返回值或者struts.xml配置文件中定义的。默认情况下,如果未明确指定...

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

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

    Struts2框架 jar JAVA开发 Struts2.jar架包 Struts2开发实例

    OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,用于在Action和视图之间传递数据。它可以方便地访问对象属性,进行条件判断和算术运算,使得数据操作更加灵活。 **数据校验** Struts2提供了...

    深入浅出Struts_2

    5. **结果类型**(Result Types):Struts2支持多种结果类型,例如dispatcher、redirect、chain等,用于控制Action执行后的页面跳转。 #### 五、Struts2的配置详解 - **配置文件**:Struts2的配置文件是框架的核心...

    Struts2演示源码

    最后,OGNL(Object-Graph Navigation Language)是Struts2中用于表达式语言的组件,它允许在Action、值栈和视图之间轻松地访问和操作对象属性。例如,我们可以在JSP页面上直接使用OGNL表达式来显示模型数据,或者在...

    action之间的跳转

    Action 之间的跳转是 Struts2 框架中的一种机制,允许不同的 Action 之间进行跳转,以实现复杂的业务逻辑。这种机制可以分为两种类型:chain 和 redirect-action。 1. Chain 类型 当 type 为 chain 时,说明是 ...

    基于struts2的文件上传+过滤器

    这个拦截器会自动解析请求中的multipart/form-data类型的数据,将文件内容转换为Action类中的属性。你需要在Action类中定义一个`File`或`CommonsMultipartFile`类型的属性,用来接收上传的文件。 以下是一个简单的...

Global site tag (gtag.js) - Google Analytics