在Struts2中,与拦截器有关的元素有这5个:intercetors,intercetor,intercetor-ref,intercetor-stack和default-intercetor-ref。
我们在使用一个拦截器之前,必须先在<intercetors>的段落里用一个intercetor元素注册它。例如,我们在下面这个package里注册两个拦截器:
<package name="myPackage" extends="struts-default">
<intercetors>
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetors>
</package>
如果想把某个拦截器添加给某个动作,就要在该动作的action元素下使用intercetor-ref元素,如下:
<package name="myPackage" extends="struts-default">
<intercetors>
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetors>
<action name="delete" class="com...">
<intercetor-ref name="validate"/>
<intercetor-ref name="logger"/>
<result name="success">/jsp/success.jsp</result>
</action
</package>
大部分struts应用程序都会有多个action元素,当我们反复地在action元素里列出一大堆拦截器清单时可能会非常麻烦,这时,就用到了拦截器盏元素(intercetor-stack):
<package name="myPackage" extends="struts-default">
<intercetor-stack name="myStack">
<intercetor name="validate" class="com..."/>
<intercetor name="logger" class="com..."/>
</intercetor-stack>
<action name="delete" class="com...">
<intercetor-ref name="myStack"/>
<result name="success">/jsp/success.jsp</result>
</action>
</package>
struts-default包已经定义了几个拦截器栈和一个default-intercetor-ref元素,如果某个动作没有定义任何拦截器,就将使用这个元素定义的默认拦截器或者拦截器栈:
<default-intercetor-ref name="defaultStack" />
如果某个动作除了使用默认的拦截器外,还使用到其他的拦截器,则需要重新定义默认的拦截器,这是因为如果action元素里出现了intercetor元素,default-intercetor-ref元素将被忽略。
分享到:
相关推荐
- XML配置:在`struts.xml`文件中,使用`<interceptor>`元素定义拦截器,`<interceptor-stack>`元素组合多个拦截器,`<package>`元素下的`interceptors`属性指定拦截器栈。 ```xml <!-- 可以添加其他内置或...
在Struts2中,每个拦截器的执行顺序是由`struts-default.xml`或自定义的配置文件中`<interceptor-stack>`元素定义的。默认情况下,Struts2提供了一些预定义的拦截器,如`params`(处理请求参数)、`exception`(处理...
在Struts2中,ActionInvocation接口代表了Action的执行过程,它可以被视为一个简单的调用栈,每个拦截器都是栈上的一个元素。当调用`invoke()`方法时,会按顺序执行这些拦截器,直到到达Action。这个设计模式与Java...
### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...
2. 拦截器配置:在struts.xml配置文件中,你可以定义多个拦截器,并通过`<interceptor>`和`<interceptor-stack>`元素来组织它们。例如,创建一个名为`myInterceptorStack`的拦截器栈,包含`logging`和`validation`两...
5. **配置拦截器**:在`struts.xml`或相关的配置文件中,通过`<interceptors>`和`<interceptor>`元素来定义和注册拦截器。同时,`<action>`元素中的`interceptor-ref`用于指定拦截器栈的引用。 6. **拦截器链**:...
标题中的"struts拦截器jar包"指的是用于增强Struts 1.x框架功能的特定库,它们是`saif-0.1.jar`和`saif-spring.jar`。这两个jar包是由开发者或社区成员Saif创建的,可能是为了集成Spring框架或者提供特定的拦截器...
拦截器是Struts2的核心特性之一,它在Action调用前后执行,提供了AOP(面向切面编程)的能力,允许开发者扩展和定制应用的行为,无需深入到每个Action的实现中。在本示例中,我们将探讨如何设置和使用Struts2的拦截...
Struts2 拦截器是框架中一个重要的组件,用于增强Action的处理能力,提供预处理和后处理的功能。在Struts2中,拦截器是基于Java的动态代理实现的,它们通过实现Interceptor接口来定义拦截行为。下面将详细阐述Struts...
这通常在`struts.xml`配置文件中完成,通过`<interceptor>`元素定义拦截器,并使用`<interceptor-ref>`引用。 ### 4. 配置拦截器 在`struts.xml`中,可以为拦截器设置名字、指定其执行顺序,以及将拦截器应用到...
在struts.xml或类似的配置文件中,你可以通过`<interceptor>`元素定义拦截器,并通过`<interceptor-stack>`定义拦截器栈,然后将这个拦截器栈应用到特定的Action上。例如: ```xml <!-- 或者单独...
### Struts2拦截器的一些用法 在Struts2框架中,拦截器(Interceptor)扮演着非常重要的角色。它能够对Action的执行进行前置处理、后置处理等操作,是实现业务逻辑之前或之后增强功能的关键组件之一。下面将详细...
拦截器可以配置在Struts.xml的global-results元素中,也可以配置在Action的 interceptor-ref元素中。 四、拦截器的拦截顺序 在Struts2中,拦截器的拦截顺序是非常重要的。我们可以在Struts.xml中配置拦截器的拦截...
Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...
在Struts2中,拦截器扮演着至关重要的角色,它们是AOP(面向切面编程)的一种实现,允许我们在动作执行前后插入自定义逻辑。拦截器可以处理诸如登录检查、权限验证、日志记录、性能监控等任务,而无需修改具体业务...
在Struts2中,拦截器(Interceptor)扮演着关键角色,它们允许开发者在Action执行前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解...
在struts.xml配置文件中,我们可以通过`<interceptors>`和`<interceptor>`元素定义自定义的拦截器,然后通过`<package>`元素的`interceptors`属性引用这些拦截器,并指定拦截器的执行顺序。 ```xml ...
在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...
`action`元素定义了登录Action,当用户尝试登录时,Struts2会根据配置的拦截器栈顺序执行拦截器。如果所有拦截器都成功执行,Action会被调用。结果映射定义了根据Action执行后的不同结果(如成功或失败)跳转到不同...
在Struts2的配置文件中,可以通过`<interceptors>`和`<interceptor-ref>`元素来定义和引用自定义拦截器。 #### 拦截器栈 拦截器栈是一系列拦截器的集合,按照指定的顺序依次执行。Struts2允许为不同的Action配置...