- 浏览: 84875 次
- 性别:
- 来自: 福建福州
文章分类
最新评论
-
walkingp:
非常好的一篇文章,再能配上插图就更好了!
asp.net架构基础知识--httpmodule&HttpHandler -
sharp_lover:
struts的校验确实是比较费劲,jquery很强但是也有一些 ...
struts2实践- 结合jquery的纯客户端js表单校验 -
daquan198163:
commons-validator支持客户端、服务端双重验证, ...
struts2实践- 结合jquery的纯客户端js表单校验 -
chinaway:
按照楼主的配置,终于搞定。3q
struts2实践- 结合jquery的纯客户端js表单校验 -
yyjn12:
不论如何,客户端的js校验,可以完全取代服务器端的数据检验吗? ...
struts2实践- 结合jquery的纯客户端js表单校验
Alias Interceptor
用于在ActionChain中的不同action之间传递参数,把相同的参数用不同的别名来命名
<param name="aliases">#{ 'foo' : 'bar' }</param>
foo参数的值将被赋予别名bar
Chaining Interceptor
该拦截器把所有value stack上的对象(除了那些实现了Unchainable接口的)拷贝到当前执行对象中(Action).可以定义includes和excludes分别指定需要或者不需要拷贝的参数,该拦截器一般和chain result结合使用.详细配置如下。
Checkbox Interceptor
和hiddenfield一起解决checkbox在未选中情况下提交到服务器端时的数据丢失问题。
Cookie Interceptor
顾名思义用于把cookie的值注入到action中,从源代码中得到的规则如下
Conversion Error Interceptor
Create Session Interceptor
DebuggingInterceptor
Execute and Wait Interceptor
Exception Interceptor
File Upload Interceptor
I18n Interceptor
Logger Interceptor
Message Store Interceptor
Model Driven Interceptor
Scoped Model Driven Interceptor
Parameters Interceptor
Prepare Interceptor
Scope Interceptor
Servlet Config Interceptor
Static Parameters Interceptor
Roles Interceptor
Timer Interceptor
Token Interceptor
Token Session Interceptor
Validation Interceptor
Workflow Interceptor
Parameter Filter Interceptor
Profiling Interceptor
MethodFilterInterceptor
[list]所有继承该interceptor的拦截器都可以通过定义excludeMethods ,includeMethods来过滤拦截器需要拦截的方法,文档中解释说includeMethods比较优先,但是从代码上看感觉应该是excludeMethods比较优先,代码如下
有空写个测试用例测试一下。
[/list]
用于在ActionChain中的不同action之间传递参数,把相同的参数用不同的别名来命名
<param name="aliases">#{ 'foo' : 'bar' }</param>
foo参数的值将被赋予别名bar
Chaining Interceptor
该拦截器把所有value stack上的对象(除了那些实现了Unchainable接口的)拷贝到当前执行对象中(Action).可以定义includes和excludes分别指定需要或者不需要拷贝的参数,该拦截器一般和chain result结合使用.详细配置如下。
<action name="someAction" class="com.examples.SomeAction"> <interceptor-ref name="basicStack"/> <result name="success" type="chain">otherAction</result> </action> <action name="otherAction" class="com.examples.OtherAction"> <interceptor-ref name="chain"/> <interceptor-ref name="basicStack"/> <result name="success">good_result.ftl</result> </action>
Checkbox Interceptor
和hiddenfield一起解决checkbox在未选中情况下提交到服务器端时的数据丢失问题。
Cookie Interceptor
顾名思义用于把cookie的值注入到action中,从源代码中得到的规则如下
- 如果cookieName存在*,并且cookieValue为空或者存在*,注入所有的cookie到action.
- 如果cookieName为空,不获取和注入任何cookie,即使定义了CookieAware得到的cookiemap也是空的。
- 如果cookieName不为空其不含有*,那么只注入于cookiename对应的cookie,并且注入前还会根据定义的cookieValue判断是否需要注入该cookiename对应的值。
Conversion Error Interceptor
- 要想利用该interceptor,action类必须实现ValidationAware接口
- 把所有conversionErrors转化成对应action的fielderrors。
- 保存用户提交上来的原始值,通过preresultlistener的处理还原到action的value stack中.
Create Session Interceptor
- 从源码上看除了ServletActionContext.getRequest().getSession(true);这句没有其它的功能了。
DebuggingInterceptor
- 显示action运行的调试信息有如下调试类型xml,console,command,browser.
Execute and Wait Interceptor
- 用于在后台处理处理需要很长执行时间的请求,用于防止http超时问题。
- 拦截器必须放在最后
- 该拦截器实际于session实现的。
- 主要原理是先返回一个wait结果(如果action为定义wait结果,struts2会利用freemarker自动生成一个wait页面)给浏览器,然后启动一个后台线程单独处理action的请求,等待action请求处理完成后把结果返回给母线程。
- action对象会被推入stack的最顶层,使用stack.push方法.
- 可以定义显示wait页面的延迟时间,如果查询请求并不需要很长时间的话,就不需要显示wait页面。
Exception Interceptor
- 主要的目的就是把exception转化成result,而不是大expcetion trace直接打印到页面上,一来提高系统的安全性,二来提高用户体验。
- 当系统捕获异常,系统会利用ExceptionHolder把exception wrap一下推入statck以便resutl页面render的时候可以获取到对应的action的信息,或者直接输入trace。
File Upload Interceptor
- 基于MultiPartRequestWrapper,用于处理文件上传的请求
- 获取所有页面上的file字段的文件,并且把这些字段转化设置到request的parameters中,并添加了contenttype和filename属性。对应的setter为fieldNameContentType,fieldNameFileName.
I18n Interceptor
- 设置于用户session相关的locale信息,并且保存该locale信息。
- 处理流程为先从request_locale=en_US获取locale信息,然后从request的parameters中删除locale信息,并且保存到session中,并应用到所有的request中。
Logger Interceptor
- 记录action的start和stop信息,只有英文信息,不支持国际化。
Message Store Interceptor
- 主要功能是为了把action的message和error已经field error存储到session,以供后续的action获取这些信息。
- 可以定义三种operationmode STORE,RETRIEVE,NONE.
- RETRIEVE主要通过合并集合和map的方式实现。
Model Driven Interceptor
- 操作其实很简单,就是调用实现的了ModelDriven接口的Action的getModel方法,然后把getModel返回的对象压栈。
Scoped Model Driven Interceptor
- 实现该接口的action可以根据scope的定义,直接从objectfactory中初始化对象,对象的标示由name属性决定。
Parameters Interceptor
- 主要功能是把parametermaps上的param利用OGNL表达式设置到相应stack的action中。
- 还能设置拒绝设置某些恶意参数例如.,#=,等会影响OGNL执行的参数,已经用户通过实现ParameterNameAware接口定义acceptableParameterName中忽略的参数。
- 例外还需要的功能包括CreatingNullObjects,DenyMethodExecution,ReportingConversionErrors。
Prepare Interceptor
- action实现了Preparable接口
- 调用prepare开头的方法。
- 调用prepareDo开头的方法.
- 如果alwaysinvokePrepare设置为true(默认),那名总会调用prepare方法.
Scope Interceptor
- 设计该拦截器的目的是为了利用session,application在多个action之间传递值,以实现类似wizard的导航功能。
- 可以利用application或session或者同时利用两者传递值。
- 如果利用session传递,则在传递过程中会为session加锁。
- 如果action定义该拦截器的属性为start,那么session中对应的property的值会被设置成该action锁对应的属性的值。(sessionReset属性具有一样的效果)
- 如果action定义该拦截器的属性为end,那么session中对应的properties会被移除。
- 如果action中为定义任何start,end或者sessionReset属性,那么表示该action处于wizard的中间,action执行前会从session中导入所需要的property的值,action执行完后会把这些值导出到session中。
- 该interceptor本身实现了PreResultListener接口并且在intercept之后添加自己到action执行完,result render前执行从action中到处property到session或者删除session中的property操作。
Servlet Config Interceptor
- 用于向实现了特定接口的action中注入和servlet有关的对象,action可以实现的对应接口如下 ServletContextAware,ServletRequestAware,ServletResponseAware,ParameterAware,RequestAware,SessionAware,ApplicationAware,PrincipalAware.
Static Parameters Interceptor
- 把struts.xml中定义的该interceptor的params pair注入对应的action中,并且如果action实现了Parameterizable接口该interceptor也会把该paramsmap通过该接口的setParams注入到对应的action中。
Roles Interceptor
- 通过该拦截器调用request的isUserInRole方法实现
Timer Interceptor
- 放回action中的方法执行的时间。
Token Interceptor
- 用于判断是否重复提交表单。在页面上和token一起使用。
Token Session Interceptor
- 用于判断是否重复提交表单。在页面上和token一起使用,Token Interceptor的改进版本,当token验证失败的时候会返回上次成功的action的执行结果。
Validation Interceptor
- 处理表单验证的拦截器,该拦截器一般配置于最后或者倒数第二个action,因为在该拦截器调用前所有的actionproperty需要准备好。
- 该拦截器支持用户实现Validatable接口的validate方法或者validateXxx,validateDoXxx方法,规则和pareparable一致。
- 拦截器支持exclude和includemethod方法的配置
Workflow Interceptor
- 该拦截器的也是为了验证,不过该action只调用那些实现了validatable或者ValidationAware接口的validateXxx,validate,validateDoXxx方法,并且判断是否有某个action,hasErrors()如果有直接打断action chain并且返回Input作为结果。
- 但是实际代码感觉和文档描述的有点不一致,实际代码只检查实现了ValidationAware的action的hasError方法.
Parameter Filter Interceptor
- 用于过滤哪些参数不需要,那些参数需要注入到action中。
- defaultBlock默认为false如果设置成true只有allow列表中的开头的parameter才能注入到action,
- allow和block的方式都是以字符串开头为规则例如person会block,person.name等等的字段。但是如果allow中定义了person.address那么该parameter可以通过。
Profiling Interceptor
- 用于打开系统性能检测功能。
MethodFilterInterceptor
[list]
if (((excludeMethods.contains("*") && !includeMethods.contains("*")) || excludeMethods.contains(method)) && !includeMethods.contains(method)) { return false; } return includeMethods.size() == 0 || includeMethods.contains(method) || includeMethods.contains("*");
有空写个测试用例测试一下。
[/list]
发表评论
-
struts2实践-文件上传以及图片文件width,length的检查(未完成版)
2008-04-15 14:48 0先定个题目等完成了再发布. -
Struts2 Architects Guide-Big Picture
2008-03-27 16:53 1355简要处理流程 HttpRequest-->ActionC ... -
Struts2 Core Developers Guide-Cookbook
2008-03-27 16:12 18781.Handling File Uploads 采用 ... -
Struts2 Core Developers Guide-FAQ
2008-03-27 11:13 16671.What are the fundamental diff ... -
Struts2 Core Developers Guide-Type Conversion
2008-03-25 16:50 20261.Overview 类型转化在strut ... -
Struts2 Core Developers Guide-Localization
2008-03-25 16:48 21941.Overview 支持国际化的 ... -
Struts2 Core Developers Guide-Validation
2008-03-25 16:20 35731.Using Annotations(利用java5的标记实 ... -
Struts2 Core Developers Guide-PreResultListener
2008-03-25 10:12 23321.主要功能&触发时间 该监听器主要在action的e ... -
Struts2 Core Developers Guide-DispatcherListener
2008-03-25 10:01 13971.主要功能 在Dispatcher对象init或者destr ... -
Struts2 Core Developers Guide-Result Types
2008-03-24 22:14 14801.总览 action负责applicate ... -
Struts2 Core Developers Guide-Action Chaining
2008-03-24 22:07 11381.顾名思义,该功能的主要目的是执行一连串的action方法, ... -
Struts Core Developers Guide-Writing Interceptors
2008-03-24 17:33 9081.实现Interceptor interface接口 该接口 ... -
Struts2 Core Developers-Interceptors
2008-03-21 15:42 8581.Understanding Interceptors(理解 ... -
Struts2 Core Developers Guide-Configuration
2008-03-21 11:34 18261.最初也是最终的理想Zero Configuration 目 ... -
Struts2 Core Developers Guide-Develop with struts
2008-03-21 10:45 10071.Ajax集成 struts2集成了对Ajax处理的支持,只 ... -
Struts2 Core Developers Guide-Nutshell(概要)
2008-03-21 10:22 917Architecture in a Nutshell(架构概要 ... -
Struts2 Core Developers Guide-tutorial
2008-03-20 10:17 10191.Dependency of struts2 struts2 ...
相关推荐
《ARM System Developers Guide - Designing and Optimizing System Software》是一本深入探讨ARM处理器系统软件设计与优化的专业书籍,由Andrew N. Sloss、Dominic Symes、Chris Wright和John Rayfield四位在ARM...
标题《qgroundcontrol-developers-guide-en》表明本篇指南是关于qgroundcontrol(简称QGC)的开发者使用说明,QGC是地面站控制软件,其主要功能是为PX4飞控系统进行配置。 描述中提到,这份开发者指南解释了QGC软件...
这个是ERSI官方文档,绝对权威,绝对经典。AO开发必读。
这个是ERSI官方文档,绝对权威,绝对经典。AO开发必读。
《ANSYS Workbench ACT开发者指南》是针对ANSYS Workbench平台下ACT(Application Customization Toolkit)工具包的一份详尽的开发手册。该指南旨在帮助专业工程师和软件开发者充分利用ACT来扩展ANSYS Workbench的...
《深入解析Jeecg-Framework:基于Eclipse与Maven的运行实践》 Jeecg-Framework是一款基于Java的企业级快速开发平台,它融合了多种先进的技术,旨在提高开发效率,降低开发成本。本文将围绕“Jeecg-Framework 采用...
Developers guide to ASP.NET
本指南将围绕“VxWorks Device Driver Developers Guide Vol”展开,深入解析驱动编程的核心概念和技术。 首先,VxWorks设备驱动的开发主要涉及三个卷: 1. **Vol1_6.6**: 这部分通常涵盖驱动程序的基础知识,包括...
标题:“Apache_CloudStack-4.3.0-Developers_Guide-en-US” 指明了文件的名称,这是一个针对开发者指南的文档,专为Apache CloudStack 4.3.0版本编写。 描述:“Apache_CloudStack-4.3.0-Developers_Guide-en-US....
Tosi -- Matplotlib for Python Developers -- 2009 -- code.7z
Nandi -- Spark for Python Developers -- 2015 -- code.7z
SIP2开发者指南 3M Standard Interchange Protocol V2.00 3M™ SelfCheck™ system SIP2 Interface Developer’s Guide
lodsve-framework My development tools, it encapsulates some open source projects, and better facilitate the conduct of Java Web development. What is lodsve lodsve is the short of ...
名称:daily.dev Where developers gro ---------------------------------------- 版本:3.28.2 作者:https://daily.dev/ 分类:开发者工具 ---------------------------------------- 概述:获取为您量身定制的最...
1. 文档标题为“json-developers-guide.pdf”,并特别指出是“oracle 19c json开发指南”。这说明文档是针对Oracle数据库19c版本下使用JSON数据格式进行开发的官方指南。Oracle 19c是一个企业级数据库版本,其对JSON...
该压缩包包含的文件“win95-a-developers-guide”很可能是本书的电子版,可能包括PDF文档、源代码示例或其他相关资源。 Windows 95是微软发布的一款具有里程碑意义的操作系统,它引入了全新的图形用户界面和多任务...
MediaTek LinkIt Smart 7688 Developers Guide v_0.92-1 是一份针对MediaTek LinkIt Smart 7688开发平台的技术指南,适用于那些希望深入了解该平台并进行开发的工程师或爱好者。这份文档是英文版,为那些喜欢阅读...
2-day-developers-guide.pdf
·增加的多核处理器支持,包括Intel@ Core i7处理器、ARM MPCore and Cortex A9处理器、FreescaleQorIQ P2020处理器、Cavium 54xx/55xx/56xx/57xx/58xx系列处理器和RMI XLR/XLS系列处理器等,使客户能够根据他们...
《Kotlin for Android Developers》中文版是一本专为Android开发者准备的Kotlin编程语言指南。这本书深入浅出地介绍了Kotlin这一现代、简洁且强大的编程语言,旨在帮助开发者快速掌握Kotlin并将其应用到Android应用...