-----拦截器创建的两种方法
- 继承MethodFilterInterceptor类
package interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class MyInterceptor extends MethodFilterInterceptor{
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
//放行
invocation.invoke();
return null; //不放行,跳转到结果
}
}
- 实现Interceptor接口
package interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class Dinterceptor implements Interceptor{
@Override
public void destroy() {
// TODO 自动生成的方法存根
}
@Override
public void init() {
// TODO 自动生成的方法存根
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// 放行
invocation.invoke();
return null; //不放行,跳转到结果
}
}
----struts.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="default" namespace="/" extends="struts-default">
<!--配置拦截器-->
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="MyInterceptor" class="interceptor.MyInterceptor"></interceptor>
<!-- 配置拦截器栈 -->
<interceptor-stack name="myStack">
<!-- 引入自己的拦截器 -->
<interceptor-ref name="MyInterceptor">
<!-- 指定哪些方法不拦截 -->
<param name="exculudeMethods"></param>
</interceptor-ref>
<!-- 引入struts中写好的拦截器 -->
<interceptor-ref name="defaultStacks"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 指定包的默认拦截器栈-->
<!--将包的拦截器栈指定为自己定义的拦截器栈,若不指定,默认为struts中写好的拦截器栈 -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<global-allowed-methods>login,execute</global-allowed-methods>
<!-- 配置Action -->
<action name="UserAction_*" class="web.UserAction" method="{1}">
<result name="success">/index.html</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>