1.structs2的拦截器包括内建的拦截器和自定义的拦截器。
拦截器的作用是使开发者可以定义一个特定的功能模块,这个模块可以在Action执行之前或者之后运行,也可以在一个Action执行之前阻止Action执行。
2.1 内建的拦截器有多种,例如Exception Interceptor,作用是将异常定位到一个画面。内建的拦截器较多,并且使用起来方便,可以直接调用,在此不再多述。
2.2 自定义拦截器分为3步,过程较为简单:
(1)自定义一个实现Interceptor接口(继承AbstractInterceptor或继承MethodFilterIntercepter)的类
(2)在structs.xml中注册上一步中定义的拦截器
(3)在需要使用的Action中引用上述定义的拦截器
一个简单的在structs.xml文件中注册如下:
<package name="xxx" extends="struts-default">
<interceptors>
<interceptor-stack name="ActionStack">
<interceptor-ref name="xxx"></interceptor-ref>
<interceptor-ref name="xxx"></interceptor-ref>
</interceptor-stack>
<interceptor name="xxx" class="xxx">
</interceptor>
</interceptors>
<action name="xxx" class="xxx">
<result name="SUCCESS">
/xxx.jsp
</result>
<interceptor-ref name="ActionStack"></interceptor-ref>
</action>
</package>