alias拦截器的使用

在SSH项目中,有时需要由一个Action跳转到另一个Action。有两种方式可以实现Action之间的跳转,一种是chain,另一种是redirectAction,这两种方式之间的区别是chain是在服务器上跳转,可以实现不同Action之间的数据共享;而redirectAction是在客户端进行跳转。

使用chain在不同的Action之间传递参数值,这个功能可以通过alias拦截器来实现。

1. 指定Filter类

在web.xml中设置下面的拦截器:

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

2. 传递参数值

在struts.xml文件中,定义第一个被调用的Action:

        <action name="XXX" class="XXXAction">
            <result name="success"></result>
            <result name="input" type="chain">
                <param name="actionName">input_error</param>
            </result>
        </action>

定义第二个被被调用的Action:

        <action name="input_error" class="inputErrorAction">
            <param name="aliases">#{‘error_status‘:‘status‘,‘error_desc‘:‘desc‘}</param>
        </action>

当第一个Action返回input时,就会跳转到第二个Action,此时将第一个Action中的error_status、error_desc的值分别传递给第二个Action的status、desc,从而实现了参数值的传递。一定要注意进行参数值传递的变量一定要有getter()和setter()方法,否则传递过去的值就是null。

时间: 2025-01-06 17:27:43

alias拦截器的使用的相关文章

【struts2】预定义拦截器

1)预定义拦截器 Struts2有默认的拦截器配置,也就是说,虽然我们没有主动去配置任何关于拦截器的东西,但是Struts2会使用默认引用的拦截器.由于Struts2的默认拦截器声明和引用都在这个Struts-default.xml里面,因此我们需要到这个文件的struts-default包里去看一下.定义如下: 1 <interceptors> 2 <interceptor name="alias" class="com.opensymphony.xwor

java框架篇---struts实现拦截器

Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法. Struts2拦截器类必须从com.opensymphony.xwork2.interceptor.Interceptor接口继承,在Intercepter接口中有如下三个方法需要实现: void destroy(); void init(); St

struts2中的拦截器

一  AOP思想: 面向切面编程的思想 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,这实际

Struts2拦截器的使用 (详解)

这位仁兄的写的不错,我照抄过来了:http://www.blogjava.net/i369/articles/162407.html 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了struts2自带的checkbox拦截器):<interceptor-ref name="checkbox">  <param name=&q

认识拦截器

认识拦截器 什么是拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架的很多核心功能是拦截器实现的 拦截器特点 拦截器自由组合,增强了灵活性.扩展性,有利于系统解耦 拦截器可以拦截Action请求 在访问的Action执行之前和执行之后执行代码实现某项功能 在哪儿使用拦截器 Struts2: 大部分功能是在拦截器中实现的 如:接收输入的参数.数据验证.文件上传.国际化等 应用程序: 需要在Action执行的前后执行特定功能时 Action执行时间统计,Action访问

Struts2拦截器详解

作者:禅楼望月 1. Struts2内置拦截器 Struts2内置了大量的拦截器,如下图: 图片来自:刘水镜的博客:菜鸟学SSH(四)--Struts2拦截器 这些拦截器以name-class的形式配置在struts-default.xml中: <interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/> <interceptor n

Struts2系列:(12)拦截器

学习拦截器 1.拦截器能够做什么?(Why 和 What) 2.如何定义拦截器?(How to use) 3.如何注册拦截器?(How to use) 4.如何使用拦截器?(How to use) 1.拦截器能够做什么? Struts2 拦截器在访问某个 Action 方法之前或之后实时拦截的可插拔的组件. 拦截器栈(Interceptor Stack): 将拦截器按一定的顺序联结成一条链. 实现原理:当请求action时,Struts 查找配置文件,根据其配置实例化拦截器对象,并形成一个列表,

Struts2内置拦截器的简要介绍

标记有(*)要着重了解: (1)alias(别名拦截器):允许参数在跨越多个请求时使用不同别名,该拦截器可将多个Action采用不同名字链接起来,然后用于处理同一信息. (2)autowiring(自动装配拦截器):主要用于当Struts2和Spring整合时,Struts2可以使用自动装配的方式来访问Spring容器中的Bean. (3)(*)chain(链拦截器):构建一个Action链,使当前Action可以访问前一个Action的请求信息,一般和<result type="chai

struts2 中 paramsPrepareParamsStack 拦截器

struts2二次参数拦截器内容: 规定了请求的执行顺序 在struts2中,其拦截器为框架精华部分,而二次参数拦截器paramsPrepareParamsStack  对于解决数据回显,对象修改属性丢失的问题悠着很良好的处理机制. 在 struts-default.xml 中的默认拦截器配置中有以下部分(可自行查找源码,通常为:struts-2.5.2\src\core\src\main\resources): <interceptor-stack name="paramsPrepare