当配置一个包时,可以为其指定默认拦截器。一旦为某个包指定了默认的拦截器,如果该包中的Action没有显式指定拦截器,则默认的拦截器将会起作用。需要注意的是:一旦我们为该包中的Action显式应用了某个拦截器,则默认的拦截器就不会起作用,如果该Action需要使用该默认拦截器,必须手动配置该拦截器的引用。
配置默认拦截器使用<default-interceptor-ref name="xxx".../>元素,该元素作为<package.../>元素的子元素使用,为该包下的所有Action配置默认的拦截器。每个包只能指定一个默认拦截器。
<package name="包名">
<interceptors>
<interceptor.../>
<interceptor-stack.../>
</interceptors>
<default-interceptor-ref name="拦截器名或拦截器栈名"/>
<action.../>
</package>
至此,可以看出与拦截器相关的配置元素如下:
元素 | 说明 |
<interceptors.../> | 该元素用于定义拦截器,所有的拦截器与拦截器栈都在该元素下定义。 该元素包含<interceptor.../>和<interceptor-stack.../>子元素, 分别用于定义拦截器和拦截器栈 |
<interceptor.../> | 该元素用于定义单个的拦截器,需要指定name和class两个属性 |
<interceptor-stack.../> | 该元素用于定义拦截器栈,可包含多个<interceptor-ref.../>子元素 |
<interceptor-ref.../> | 该元素引用一个拦截器或拦截器栈,表明应用指定拦截器。只需要一个name属性 |
<param.../> | 该元素用于为拦截器指定参数 |
<default-interceptor-ref.../> | 该元素为指定包配置默认拦截器,该元素作为<package.../>元素的子元素使用。 |