配置拦截器
在配置拦截器的时候可以为拦截器传递参数,对于已经配置好的拦截器,在引用时还可以覆盖它的参数
defaultStack拦截栈中的validation拦截器配置如下:
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel</param>
</interceptor-ref>
在Action配置中,覆盖validation拦截器的excludeMethods参数的设置,配置如下:
Struts2 的 Validation 拦截器用来手工编写代码实现 (基本验证)
input,back,cancel换成了default方法
<package
name="default"
extends="struts-default">
<action
name="time"
class="com.ibm.action.LoginAction">
<interceptor-ref name=“defaultStack ">
<param name="excludeMethods">default</param>
</interceptor-ref>
<result>index.jsp</result>
</action>
</package>
注意:
struts-default.xml
- 如果defaultStack拦截器栈包含了validation和workflow拦截器,这两个拦截器都可以有excludeMethods参数,采用上述方式,框架将无法知道你是要为哪一个拦截器传递参数。
- 为了覆盖defaultStack拦截器栈中validation拦截器的excludeMethods参数设置,我们可以在Action的配置中直接引用defaultStack拦截器栈中的所有拦截器,然后在引用validation拦截器时,设置参数
-
validation.excludeMethods.采用这种方式
-
指定参数名时,加上拦截器名前缀,例如:validation.excludeMethods.采用这种方式,我们仍然可以继续引用defaultStack拦截器栈