1、拦截器的概念
拦截器(Interceptor)是Struts2框架的基石
拦截器是动态拦截Action调用的对象
它提供了一种机制使开发者可以定义在一个action执行的前、后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。
拦截器链(或称为拦截器栈InterceptorStack)
拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。
拦截器Interceptor是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化、转换器,校验等。
2、struts 拦截器
在动作中使用拦截器需要先声明、后引用
声明拦截器
使用<interceptorname=“xxx” class=“Xxx”/>标签
是<package>标签的子标签
声明拦截器栈(拦截器链)
声明一组拦截器
<interceptor-stack name=“basicStack”>
<interceptor-ref name=“exception”/> …
</interceptor-stack>
<interceptor-stack name=“basicStack”>
<interceptor-ref name=“exception”/> …
</interceptor-stack>
在动作中引用拦截器(或拦截器栈)
使用<interceptor-ref/>标签,可以引用拦截器或拦截器栈
如果在一个动作中没引用任何拦截器,会默认引用defaultStack拦截器栈。
只要有显示的拦截器引用,默认的拦截器栈将不会被引用