struts2内建拦截器

幸运小侯子 2010-01-21

1.alias:实现在不同请求中相似参数别名的转换;

2.autowiring:自动装配的拦截器,主要用于和spring整合时,struts2可以使用自动装配的方式访问spring的bean

3.chain:使当前action可以访问前一个action的属性,一般和

<resulttype="chain">....使用

4.conversionError:这是一个负责处理类型转换错误的拦截器,负责将类型转换从actionContext读取出来,转换成Action的FieldError错误

5.createSession:创建一个httpSession对象

6.debugging:使用开发模式时,显示更多的调试信息

7.execAndWait:后台执行Action,负责将等待画面发送给用户

8.exception:负责处理异常,将异常映射为结果

9.fileUpload:用于文件上传,解析表单域的内容

10.i18n:支持国际化,负责将所选的语言,放入到用户的session

11.logger:负责日志记录

12.modelDriven:用于模型驱动,当某个action实现modelDriven接口时,负责通过getModel()将model传给Action

13.params:基本的拦截器,负责解析http请求的参数,将参数值设置成Action对应的属性值

14.prepare:如果Action实现preparable接口,将会调用该拦截器的prepare的方法。

15.static-params:负责xml中Action的param标签解析传入到Action

16.scope:这是范围转换拦截器,将Action状态信息保存在HttpSession或ServletContext范围内

17.servlet-config:如果某个Action需要直接访问ServletApi就需要这个拦截器

18.role:JAAS,只有当浏览者取得合适的授权,才可以调用该拦截器的Action

19.timer:拦截Action的执行时间,一般在分析Action的性能瓶颈的时候使用

20.token:防止重复提交

21.validation:通过执行在ActionName-validation.xml中定义的效验器,从而完成数据验证

22.workflow:这个拦截器负责调用Action类中的validate方法,如果验证失败,返回input视图

经常使用的默认defaultStack包括以下拦截器。

<interceptor-stack name="defaultStack">
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="profiling"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*</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-stack>

相关推荐