一、创建一个Interceptor(拦截器)包;
二、创建一个MyInterceptor类;
public class MyInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("进入拦截器");
//调用后续拦截器或action,接收结果字符串
String result=invocation.invoke();
System.out.println("返回拦截器");
return result;
}
三、struts.xml配置文件中:
//在需要使用的地方package/action中配置自定义拦截器
//引用自定义拦截器
//引用defaultStack系统默认拦截器,user.getUserName()等自动封装的属性才能继续使用
<package name="user" namespace="/" extends="globle">
<interceptors>
<interceptor name="myInterceptor" class="interceptor.MyInterceptor"></interceptor>
</interceptors>
<action name="*User" class="action.UserAction" method="{1}" >
<result name="input" >index.jsp</result>
<result name="success" type="redirectAction">
<param name="actionName">logoutUser</param>
<param name="userName">${user.userName}</param>
</result>
<result name="exit">index.jsp</result>
<interceptor-ref name="myInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>