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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值