Interceptor 作用:在Action执行前或执行后,执行某些代码,也以决定是否继续调用其它Interceptor及Action.
public class TestInterceptor extends AbstractInterceptor{ @Override public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub //在之后的Interceptor和Action执行前,可以执行某些代码 String resultCode=ActionSupport.INPUT; if(true){ resultCode = invocation.invoke();//继续执行之后的Interceptor和Action }else{ //也可以不执行之后的Interceptor和Action,直接跳转到其它页面。 } //在Interceptor和Action执行完成之后,可以执行某此代码。 return resultCode; } }
Struts 中默认执行的interceptor在struts-default.xml中定义:
<interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="i18n"/> <interceptor-ref name="prepare"/> <interceptor-ref name="chain"/> <interceptor-ref name="scopedModelDriven"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="multiselect"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="actionMappingParams"/> <interceptor-ref name="params"> <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param> </interceptor-ref> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="debugging"/> <interceptor-ref name="deprecation"/> </interceptor-stack> <default-interceptor-ref name="defaultStack"/>
interceptor的执行顺序与下面定义的顺序一至,最后一个interceptor执行完成后之后,调用Action.
相关推荐
在Struts2中,Filter扮演着框架入口的角色,所有HTTP请求都需通过FilterDispatcher这一核心Filter进行处理。 **Interceptor** 是Struts2框架特有的概念,用于在Action执行前后进行拦截,可以实现类似Filter的功能,...
Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
1. **拦截器**:在Struts2中,拦截器是实现了`com.opensymphony.xwork2.interceptor.Interceptor`接口的类。拦截器可以在方法执行前后进行拦截处理。 2. **拦截器栈**:多个拦截器的集合称为拦截器栈,Struts2默认...
1. **何时被调用**:在Struts2中,Interceptor 在Action执行前后被调用。具体的时机由拦截器链(Interceptor Chain)的配置决定。 2. **如何实现**:Struts2提供了一个灵活的Interceptor框架,开发者可以通过实现...
STRUTS2:拦截器Interceptor
2. **配置Interceptor**:在struts.xml配置文件中,可以通过`<interceptors>`标签定义拦截器栈,并使用`<interceptor>`子标签声明具体的拦截器。`<action>`标签中的`interceptor-ref`属性用于指定该Action应使用的...
然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架有所不同。Struts2引入了拦截器,极大地增强了框架的灵活性和可扩展性。但是,由于Struts1的流行和项目需求,"saif...
在Struts2中,拦截器(Interceptor)是核心组件之一,它们在Action执行前后进行拦截,实现了如日志记录、权限检查、数据验证等业务逻辑。而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用...
Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
2. **Action与ActionMapping**:在Struts2中,业务逻辑通常封装在Action类中。一个Action类对应一个用户请求,处理来自客户端的请求并返回结果。ActionMapping则负责配置Action与URL的映射关系,使得请求能正确路由...
在“Struts2中文教程”中,你可以找到关于这个框架的基础知识,包括安装配置、Action类、结果类型、拦截器等关键概念的详细介绍。教程通常会从最基础的环境搭建开始,教你如何配置Struts2的核心库和web.xml文件,...
在Struts2中,OGNL用于传递Action与视图之间的数据,以及在拦截器中进行表达式计算。 4. **struts2-convention-plugin.jar**:这是Struts2的约定优于配置插件,它简化了Action类和结果配置,使得开发者可以按照一定...
在 Struts2 项目开发中,需求分析是非常重要的一步。通过对项目的需求分析,可以确定项目的功能需求、性能需求、安全需求等。例如,在个人信息管理系统中,需要分析用户的需求,例如登录与注册、个人基本信息管理、...
在Struts2的配置中,Struts.xml文件扮演着关键角色,它包含了Action、Result、Interceptor的配置信息。通过这个配置文件,开发者可以声明Action的映射、指定Result类型以及设置Interceptor链。 此外,Struts2还支持...
文档中还会讲解如何使用Struts2的异常处理机制,以及如何调试和解决常见的运行时问题。 总的来说,这个压缩包对于想深入理解并熟练掌握Struts2框架的开发者来说是宝贵的资源。通过API文档可以了解框架的底层机制,...
OGNL是Struts2中的默认表达式语言,用于在Action和视图之间传递数据。例如,`${user.name}`可以获取User对象的name属性。 **7. Struts2的注解** 除了XML配置外,Struts2还支持使用注解进行配置,使得代码更加简洁。...
2. **核心库**:`struts2-core.jar`是框架的核心,包含Action、Result、Interceptor、Freemarker模板引擎等相关类,它是Struts2运行的基石。 3. **拦截器库**:`struts2-convention-plugin.jar`和`struts2-...