一、Struts2.0自定义的拦截器
<!-- 在不同请求之间将请求参数在不同名字件转换,请求内容不变 -->
<interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor" />
<!-- -->
<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor" />
<!-- 让前一个Action的属性可以被后一个Action访问,现在和chain类型的result(<result type=”chain”>)结合使用 -->
<interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor" />
<!-- 将错误从ActionContext中添加到Action的属性字段中 -->
<interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor" />
<!-- 自动的创建HttpSession,用来为需要使用到HttpSession的拦截器服务 -->
<interceptor name="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" />
<!-- 提供不同的调试用的页面来展现内部的数据状况 -->
<interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" />
<interceptor name="external-ref" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor" />
<!-- 在后台执行Action,同时将用户带到一个中间的等待页面 -->
<interceptor name="execAndWait" class="org.apache.struts2.interceptor.ExecuteAndWaitInterceptor" />
<!-- 将异常定位到一个画面 -->
<interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor" />
<!-- 提供文件上传功能 -->
<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor" />
<!-- 记录用户选择的locale -->
<interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor" />
<!-- 输出Action的名字 -->
<interceptor name="logger" class="com.opensymphony.xwork2.interceptor.LoggingInterceptor" />
<!-- 如果一个类实现了ModelDriven,将getModel得到的结果放在Value Stack中 -->
<interceptor name="model-driven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor" />
<!-- 如果一个Action实现了ScopedModelDriven,则这个拦截器会从相应的Scope中取出model调用Action的setModel方法将其放入Action内部 -->
<interceptor name="scoped-model-driven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor" />
<!-- 将请求中的参数设置到Action中去 -->
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor" />
<!-- 如果Acton实现了Preparable,则该拦截器调用Action类的prepare方法 -->
<interceptor name="prepare" class="com.opensymphony.xwork2.interceptor.PrepareInterceptor" />
<!-- 从struts.xml文件中将<action>中的<param>中的内容设置到对应的Action中 -->
<interceptor name="static-params" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor" />
<!-- 将Action状态存入session和application的简单方法 -->
<interceptor name="scope" class="org.apache.struts2.interceptor.ScopeInterceptor" />
<!-- 提供访问HttpServletRequest和HttpServletResponse的方法,以Map的方式访问 -->
<interceptor name="servlet-config" class="org.apache.struts2.interceptor.ServletConfigInterceptor" />
<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor" />
<!-- 输出Action执行的时间 -->
<interceptor name="timer" class="com.opensymphony.xwork2.interceptor.TimerInterceptor" />
<!-- 通过Token来避免双击 -->
<interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor" />
<!-- 和Token Interceptor一样,不过双击的时候把请求的数据存储在Session中 -->
<interceptor name="token-session" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor" />
<!-- 使用action-validation.xml文件中定义的内容校验提交的数据 -->
<interceptor name="validation" class="com.opensymphony.xwork2.validator.ValidationInterceptor" />
<!-- 调用Action的validate方法,一旦有错误返回,重新定位到INPUT画面 -->
<interceptor name="workflow" class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor" />
<!-- 存储或者访问实现ValidationAware接口的Action类出现的消息,错误,字段错误等 -->
<interceptor name="store" class="org.apache.struts2.interceptor.MessageStoreInterceptor" />
<!-- 添加了checkbox自动处理代码,将没有选中的checkbox的内容设定为false,而html默认情况下不提交没有选中的checkbox -->
<interceptor name="checkbox" class="org.apache.struts2.interceptor.CheckboxInterceptor" />
<!-- 通过参数激活profile -->
<interceptor name="profiling" class="org.apache.struts2.interceptor.ProfilingActivationInterceptor" />
二、自定义拦截器
1、自定义一个实现com.opensymphony.xwork2.interceptor.Interceptor接口(或者继承com.opensymphony.xwork2.interceptor.AbstractInterceptor)的类
实现Iterceptor接口
public class InterceptorImpl implements Interceptor {
public void destroy() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
继承AbstractInterceptor
public class AbstractExt extends AbstractInterceptor {
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
2、在struts.xml中注册一个拦截器
<interceptors>
<interceptor name="拦截器名称" class="类路径" />
<interceptor-stack name="">
<interceptor-ref name=""></interceptor-ref>
</interceptor-stack>
</interceptors>
3、在需要使用的Action中引用上述定义的拦截器
<action name="login" class="">
<interceptor-ref name="拦截器名称">
<param name="参数名">值</param>
</interceptor-ref>
</action>
分享到:
相关推荐
总结来说,Struts2.0的拦截器提供了一种灵活的方式来扩展和控制应用程序的行为,而CRUD操作则通过Action类实现。理解这些核心概念对于有效地利用Struts2开发Web应用至关重要。通过熟练掌握这些知识,开发者可以更...
### Struts2.0拦截器详解 #### 一、拦截器概述 在Struts2框架中,拦截器(interceptor)是一种非常重要的机制,用于在执行Action前后进行一系列预处理或后处理的操作。拦截器可以用来执行如参数拦截、类型转换、输入...
下面我们将深入探讨Struts2.0拦截器的完整知识体系。 1. **拦截器的概念** 拦截器类似于AOP(面向切面编程)中的通知,它是在Action执行前或执行后进行拦截,并可以修改Action的执行流程。在Struts2中,拦截器是...
五、Struts2.0拦截器 拦截器是Struts2.0实现业务逻辑的重要手段,如ValidationInterceptor进行数据校验,ExceptionMappingInterceptor处理异常,LoginInterceptor实现登录控制等。拦截器可以自由组合,形成拦截器栈...
07 Struts 2的基石——拦截器(Interceptor) 08 在Struts 2中实现IoC 09 在Struts 2中实现文件上传 10 在Struts 2中实现CRUD 11 Struts 2中的OGNL 12 trus 2的新表单标志的使用 13 Struts 2与AJAX
Struts 2.0系列(MAX),pdf格式,全...Struts 2的基石——拦截器(Interceptor) 在Struts 2中实现IoC 在Struts 2中实现文件上传 在Struts 2中实现CRUD Struts 2中的OGNL Strus 2的新表单标志的使用 Struts 2与AJAX
5. **Struts2拦截器**:介绍Struts2的核心组件之一——拦截器,如何使用拦截器进行日志记录、权限验证等操作。 6. **结果类型与导航**:讲解如何配置结果类型,如Redirect、RedirectAction、Stream等,以及基于...
Struts2.0采用了拦截器(Interceptor)机制,这是一种非常强大的特性,允许开发者在Action执行前后进行一系列操作,如参数填充、验证、事务控制等。拦截器的设计遵循AOP(Aspect Oriented Programming)思想,可以...
Struts 2.0 是一个基于MVC设计模式的Java Web框架,它的核心功能之一是拦截器(Interceptor),这是实现业务逻辑控制和增强应用程序功能的重要组件。在Struts 2中,拦截器扮演着中间人的角色,它们在Action调用前后...
Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...
Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...
本详细讲解将涵盖四个关键主题:拦截器、标签、配置详解以及Struts 2.0的基础知识。 **1. Struts 2.0 拦截器** 拦截器是Struts 2的核心特性之一,它们类似于AOP(面向切面编程)的概念,可以实现在动作执行前后插入...
Struts2.0 jar包是Java Web开发中的一个重要组件,它是Apache Struts框架的一个特定版本。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建可维护性高、结构清晰的Java应用。该框架极大...
2. **拦截器(Interceptor)**:拦截器是Struts2.0的一大特色,它可以实现通用的功能,如日志、权限检查等,无需在每个Action中重复编写。通过配置拦截器栈,可以灵活地控制请求的处理流程。 3. **OGNL(Object-...
3. **拦截器**:Struts2.0使用拦截器来处理请求,拦截器链可以在不修改Action代码的情况下添加新的功能,如日志、事务管理等。 4. **OGNL表达式语言**:Struts2.0使用OGNL(Object-Graph Navigation Language)作为...
2. **拦截器(Interceptors)**: Struts 2.0引入了拦截器机制,类似于AOP(面向切面编程)的概念,可以实现如日志记录、事务管理、权限控制等功能。开发者可以自定义拦截器,并将其链式地配置在Action执行路径上,...
Struts2.0框架整合了多种开源项目,如FreeMarker或JSP作为视图技术,OGNL(Object-Graph Navigation Language)作为表达式语言,以及拦截器机制来处理请求。框架的核心部分包括Action类,它是业务逻辑的载体;配置文件...
拦截器是Struts 2.0的一个核心特性,它们在Action执行前后执行,可以用于日志记录、权限验证、数据校验等。开发者可以通过自定义拦截器扩展框架功能。 6. **OGNL(Object-Graph Navigation Language)** Struts ...
Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Jakarta项目下的一个开源产品,主要用于构建MVC(Model-View-Controller)模式的应用程序。本入门案例将带你逐步了解如何使用Struts2.0来创建...