首先要明确Interceptor(拦截器)的作用,一般用于文件上传验证等,在本文将省略详细说明。写一个Interceptor类,必须覆写intercept方法,intercept方法的结构大体是这样的,包括调用action前需要进行的前处理,调用action,然后进行收尾工作,即是进行后处理。
写好拦截器后,就是在struts2的配置文件中调用这个拦截器,如何写配置文件下面给出两个简单例子:
<package name="helloworld" extends="struts-default"> <interceptors> <interceptor name="myinterceptor" class="com.li.struts2.MyInterceptor" /> </interceptors> <action name="hello" class="com.li.struts2.HelloWorldAction" method="execute"> <interceptor-ref name="params"/> <interceptor-ref name="myinterceptor" /> <result name="success">/HelloWorld.jsp</result> </action> </package>
对于拦截器比较多的情况,还可以这样
<interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servlet-config"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack>
<action name="hello" class="com.li.struts2.MyAction"> <interceptor-ref name="basicStack"/> <result>view.jsp</result> </action