拦截器的配置:
在struts.xml中配置拦截器使用<interceptor.../>元素:
<interceptor name="拦截器名" class="拦截器实现类"/>
如果还需要在配置拦截器时传入参数,则在<interceptor.../>元素中使用
<param.../>子元素:
<interceptor name="拦截器名" class="拦截器实现类">
<param name="参数名">参数值</param>
</interceptor>
除此之外,还可以把多个拦截器连在一起组成拦截器栈,此时使用
<interceptor-stack.../>元素,里面使用
<interceptor-ref.../>元素:
<interceptor-stack name="拦截器栈名">
<interceptor-ref name="拦截器一"/>
<interceptor-ref name="拦截器二"/>
</interceptor-stack>
系统为拦截器指定参数有如下两个时机:
① 定义拦截器时指定参数值:这种参数值将作为拦截器参数的默认参数值。
② 使用拦截器时指定参数值:在配置Action时为拦截器参数指定值。
拦截器的使用:
一旦定义了拦截器和拦截器栈后,就可以使用这个拦截器或拦截器栈来拦截Action了,拦截器的拦截行为将会在Action的execute方法执行之前被执行。
通过<interceptor-ref.../>元素可以在Action内使用拦截器:
<action name="login" class="action.LoginAction">
<result name="error">/error.jsp</result>
<result name="success">/success.jsp</result>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="simple"/>
<interceptor-ref name="later">
<param name="name">动态参数</param>
</interceptor-ref>
</action>