`
myoldman
  • 浏览: 84889 次
  • 性别: Icon_minigender_1
  • 来自: 福建福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2 Core Developers-Interceptors

阅读更多
1.Understanding Interceptors(理解拦截器的工作原理)
拦截器主要是为了完成action执行前的有些准备工作,以及action完成的有些扫尾工作。
拦截器可以中端action的执行过程。
拦截器定义在拦截器栈中,并且按照一定的顺序执行。
struts2拦截器的调用主要通过ActionProxy所代理的action对象来实现interceptor的调用。
2.Configuring Interceptors
<package name="default" extends="struts-default">
   <interceptors>
       <interceptor name="timer" class=".."/>
       <interceptor name="logger" class=".."/>
   </interceptors>

   <action name="login"
      class="tutorial.Login">
        <interceptor-ref name="timer"/>
        <interceptor-ref name="logger"/>
         <result name="input">login.jsp</result>
         <result name="success"
            type="redirectAction">/secure/home</result>
   </action>
</package>

拦截器可以是包级别或者action级别。并且能够覆盖。
3.Stacking Interceptors
可以参考struts-default.xml中的配置。
4.Framework Interceptors(框架定义好的拦截器)
详细参考struts应用。
Method Filtering
方法过滤
例如validation中可以过滤那些方法需要表单验证,那些方法不需要
Interceptors that extends this capability include:
TokenInterceptor
TokenSessionStoreInterceptor
DefaultWorkflowInterceptor
ValidationInterceptor
可以定配置的参数有
excludeMethods - method names to be excluded from interceptor processing
includeMethods - method names to be included in interceptor processing
如果一个方法同时存在于以上两个参数则includeMethods优先。
Interceptor Parameter Overriding
重写以上参数的形式有如下两种
<action name="myAction" class="myActionClass">
  <interceptor-ref name="defaultStack">
    <param name="validation.excludeMethods">myValidationExcludeMethod</param>
    <param name="workflow.excludeMethods">myWorkflowExcludeMethod</param>
  </interceptor-ref>
</action>

<action name="myAction" class="myActionClass">
    <interceptor-ref name="exception"/>
    <interceptor-ref name="alias"/>
    <interceptor-ref name="params"/>
    <interceptor-ref name="servletConfig"/>
    <interceptor-ref name="prepare"/>
    <interceptor-ref name="i18n"/>
    <interceptor-ref name="chain"/>
    <interceptor-ref name="modelDriven"/>
    <interceptor-ref name="fileUpload"/>
    <interceptor-ref name="staticParams"/>
    <interceptor-ref name="params"/>
    <interceptor-ref name="conversionError"/>
    <interceptor-ref name="validation">
    <param name="excludeMethods">myValidationExcudeMethod</param>
    </interceptor-ref>
    <interceptor-ref name="workflow">
    <param name="excludeMethods">myWorkflowExcludeMethod</param>
    </interceptor-ref>
</action>


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics