
struts2拦截器详解
文章平均质量分 79
拦截器是struts2中非常重要的组成部分,是struts2中极为精妙的一笔,本专栏就将对sturst2 defaultStack中的18个拦截器参照源码进行逐个详细解说,并详解拦截器的执行流程与原理,以加强对struts2的理解。
云原生之家
这个作者很懒,什么都没留下…
展开
-
struts2 18拦截器详解(二十) --- 拦截器总结
拦截器总结 拦截器是struts2中非常重要的组成部分,是struts2中极为精妙的一笔,struts2中很多功能都是通过这些拦截器实现,如:异常处理,文件上传请求参数赋值,数据校验等这些功能实现都在拦截器中。要深入理解拦截器,理解拦截器的执行流程是关键,这就需要对在拦截器执行过程中涉及的一些重要类要比较了解,尤其是ActionContext、ValueStack、ActionIn原创 2013-11-06 17:21:49 · 1936 阅读 · 1 评论 -
struts2 18拦截器详解(十九) --- DefaultWorkflowInterceptor
DefaultWorkflowInterceptor DefaultWorkflowInterceptor拦截器处于defaultStack第十八的位置,为defaultStack拦截器栈中的最后一个拦截器,其主要功能是判断当前Action的执行过程有无错误,包含ActionError与FieldError两种,例如在请求参数类型转换出错后就会添加FieldError。如果执行原创 2013-11-06 15:56:55 · 2441 阅读 · 0 评论 -
struts2 18拦截器详解(十八) --- AnnotationValidationInterceptor
AnnotationValidationInterceptor AnnotationValidationInterceptor拦截器处于defaultStack第十七的位置,主要是用于数据校验的,该拦截器继承自ValidationInterceptor拦截器增加了在方法上使用注解取消校验功能。ValidationInterceptor又继承自MethodFilterInterc原创 2013-11-06 15:50:46 · 3418 阅读 · 0 评论 -
struts2 18拦截器详解(十七) --- StrutsConversionErrorInterceptor
StrutsConversionErrorInterceptorStrutsConversionErrorInterceptor拦截器处于defaultStack第十六的位置,是用于处理转类型转换错误的,该拦截器继承自ConversionErrorInterceptor类其大部分功能逻辑都在ConversionErrorInterceptor中,StrutsConversionEr原创 2013-11-06 15:44:54 · 2532 阅读 · 0 评论 -
struts2 18拦截器详解(十六) --- ActionMappingParametersInteceptor
ActionMappingParametersInteceptor ActionMappingParametersInteceptor拦截器处于defaultStack第十四的位置,该拦截器继承自ParametersInterceptor,也是用于把参数设置到ValueStack中,只不过该拦截器的参数是来源于ActionMapping中,而不是来自请求参数。往ValueSta原创 2013-11-05 20:33:45 · 2423 阅读 · 0 评论 -
struts2 18拦截器详解(十五) --- ParametersInterceptor
ParametersInterceptor 该拦截器处于defaultStack第十五的位置,这里跳过了一个拦截器,先讲ParametersInterceptor再讲第十四个ActionMappingParametersInteceptor因为ActionMappingParametersInteceptor继承自ParametersInterceptor,只是赋值参数源不一样,所原创 2013-11-05 20:12:42 · 6405 阅读 · 0 评论 -
struts2 18拦截器详解(十四) --- StaticParametersInterceptor
struts2 18拦截器详解(十四)之StaticParametersInterceptor 该拦截器处于defaultStack第十三的位置,是用来把通过标签配置在struts2配置文件中为Action配置的静态参数填装到Action中如果Action实现了Parameterizable接口,还会把静态参数封装成一个Map直接传递给Action,这些静态参数还会添加到request参数Map中除非该拦截器的mer原创 2013-11-04 19:41:41 · 2971 阅读 · 1 评论 -
struts2 18拦截器详解(十三) --- MultiselectInterceptor
MultiselectInterceptor 该拦截器处理defaultStack第十二的位置,是用于处理select标签没有一个option被选中的情况,这个拦截器的逻辑与CheckboxIntercept拦截器非常类似,几乎是一模一样的。当一个select标签(multiple="multiple")没有一个option被选中的时候就相当于没有这个select标签,这就出现原创 2013-11-03 19:53:06 · 1653 阅读 · 0 评论 -
struts2 18拦截器详解(十二) --- CheckboxInterceptor
CheckboxInterceptor 该拦截器处于defaultStack第十一的位置,看这个拦截器的名称应该就是对checkbox进行处理的。要理解这个拦截器的作用有一点必须知道:当一个form表单中存在一个checkbox的时候,假设这个checkbox的name属性值为married,当我们选上这个checkbox的时候请求参数命令里有一个married=true参数,原创 2013-11-03 19:47:51 · 3794 阅读 · 0 评论 -
struts2 18拦截器详解(十一) --- FileUploadInterceptor
FileUploadInterceptor 该拦截器处于defaultStack第十的位置,看其名称就知道是用于处理文件上传的,对于文件上传有一点大家应该要了解:struts2处理文件上传内部使用的是commons-fileupload组件,当我们在form表单中把enctype属性设置为"multipart/form-data"时表示这是一个文件上传请求,当struts2接收到这原创 2013-11-02 23:29:49 · 3968 阅读 · 0 评论 -
struts2 18拦截器详解(十) --- ModelDrivenInterceptor
ModelDrivenInterceptor 该拦截器处于defaultStack中的第九的位置,在ScopedModelDrivenInterceptor拦截器之后,要使该拦截器有效的话,Action必须实现ModelDriven接口,该接口就一个方法:getModel(),ModelDrivenInterceptor拦截器主要做的事就是调用Action的getModel()原创 2013-11-01 17:27:48 · 2122 阅读 · 0 评论 -
struts2 18拦截器详解(九) --- ScopedModelDrivenInterceptor
ScopedModelDrivenInterceptor 该拦截器处于defaultStack第八的位置,其主要功能是从指定的作用域内检索相应的model设置到Action中,该类中有三个相关的属性:scope:从哪里获取model,有两个值,一是request,二是session,默认值为requestname:在scope中检索model的keyclassName:原创 2013-11-01 13:58:43 · 1886 阅读 · 0 评论 -
struts2 18拦截器详解(八) --- DebuggingInterceptor
DebuggingInterceptor 该拦截器处理defaultStack第七的位置,看它的名字就知道是用来调试用的。个人觉得虽然该拦截器中代码最多,却是最没用的一个拦截器,该拦截器主要是提供了几种调试屏幕,因为如果我们要查看ActionContext或ValueStack中存储的数据的话,struts2还提供了一个标签,只要在页面中把该标签加上,ActionContext或V原创 2013-10-31 18:28:52 · 2185 阅读 · 0 评论 -
struts2 18拦截器详解(七) --- ChainingInterceptor
ChainingInterceptor该拦截器处于defaultStack第六的位置,其主要功能是复制值栈(ValueStack)中的所有对象的所有属性到当前正在执行的Action中,因为如果说ValueStack中没有任何对象的话,该拦截器不会干任何事情,看到这个拦截器的名称,大家应该会想到有一种chain类型的Result,该拦截器主要就是针对chain类型Result起作用的,因原创 2013-10-31 16:45:28 · 1706 阅读 · 0 评论 -
struts2 18拦截器详解(六) --- PrepareInterceptor
PrepareInterceptor 该拦截器处于defaultStack第五的位置,该拦截器的功能主要是在Action的execute(假设配置文件中没有指定)方法之前执行一些业务逻辑,如果你刚好有这样的需求,该拦截器是你很好的选择,要使该拦截有效,Action要实现Preparable接口,与前面几个拦截器不同的是该拦截器继承自MethodFilterInterceptor而不原创 2013-10-31 11:40:36 · 2265 阅读 · 0 评论 -
struts2 18拦截器详解(五) --- I18nInterceptor
I18nInterceptor 该拦截器处理defaultStack第四的位置,是用来方便国际化的,如果说我们的一个Web项目要支持国际化的话,通常的做法是给定一个下拉框列出所支持的语言,当用户选择了一种语言后后面浏览的所有页面自动切换到所选择的语言版本,而该拦截器就是用来实现该功能的。要实现语言切换说白了就是动态改变Locale。 在该拦截器中定义了三个属性,分别是:原创 2013-10-30 23:29:49 · 2793 阅读 · 0 评论 -
struts2 18拦截器详解(四) --- ServletConfigInterceptor
ServletConfigInterceptorServletConfigInterceptor拦截器处理defaultStack第三的位置,可以说这个拦截器是18拦截器中逻辑最简单的一个,就是给Action提供一种获取运行参数的一种方式,如果request,session,application,通过该拦截器,只要Action实现相应的接口就可以获得这些对象。下面是该拦截器interce原创 2013-10-29 19:56:05 · 2120 阅读 · 0 评论 -
struts2 18拦截器详解(三) --- AliasInterceptor
AliasInterceptor 该拦截器位于defaultStack第二的位置,其功能比较简单,主要就是为我们传递的请求参数取别名映射到多个命名的参数上,这样可以让多个Action以不同的参数名共享同一个请求参数,特别是在Result类型为chain的时候。下面举个例子讲一下如何配置这个拦截器: #{ 'un' : 'username' } /WEB-INF/page/m原创 2013-10-29 19:50:40 · 1592 阅读 · 0 评论 -
struts2 18拦截器详解(二) --- ExceptionInterceptor
exception拦截器exception拦截器对应的类为com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor 该拦截器是struts2专门用于处理异常的,如果我们进行了异常配置,当struts2的执行出现异常后可以跳转到指定的Result,这也是struts2的异常处理机制。 下面看一下该拦截器的源码:原创 2013-10-28 17:53:40 · 5751 阅读 · 0 评论 -
struts2 18拦截器详解(一) --- 准备知识
准备知识 struts2作为一优秀的Web层框架,其拦截器机制更是让其如虎添翼,下面将详细介绍struts2内置的defaultStack中的18拦截工作原理其及功能。但讲解之前必须先了解struts2中拦截器的执行流程,以更好地理解各个拦截器的执行与功能。 struts2中拦截器与Action的执行调度即执行流程或者说执行顺序是由ActionInvocation来完成的(如原创 2013-10-28 16:04:31 · 3169 阅读 · 3 评论