Struts2使用MethodFilterInterceptor來實現方法攔截器
1.繼承MethodFilterInterceptor方法重寫doInterceptor方法
//實現doIntercept//這樣子還是不能去攔截指定方法
public class Myintercetor extends MethodFilterInterceptor {
public String doIntercept(ActionInvocation invocation) throws Exception {
UserInfo info=(UserInfo) ServletActionContext.getRequest().getSession().getAttribute("user");
if(info!=null&&!info.getName().equals("")&&!info.getPwd().equals(""))
{
return invocation.invoke();
}
return "login";
}
}
2.在struts.xml action中配置要攔截的方法和不需要攔截的方法
<action name="dom_*" class="com.sun.action.DomeAction" method="{1}">
<result name="no">/home.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="dem">
<param name="excludeMethods">add</param><!--指定不需要攔截的方法-->
<param name="excludeMethods">up</param>
<param name="includeMethods">del</param><!--指定需要攔截的方法-->
</interceptor-ref>
</action>