struts2自定义拦截器并配置拦截器使其生效

来源:互联网 发布:新西兰 购物 知乎 编辑:程序博客网 时间:2024/05/17 22:26

首先编写一个struts2的拦截器,要继承 MethodFilterInterceptor

并获取其中的方法


package star.july.d_interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.ActionProxy;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;//自定义一个拦截器public class Interceptor extends MethodFilterInterceptor{@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {//拦截器的方法//获得代理对象ActionProxy proxy = invocation.getProxy();System.out.println(proxy);//获取被代理对象actionObject action = proxy.getAction();System.out.println(action);//获取action的名称String actionName = proxy.getActionName();System.out.println(actionName);//获得方法String method = proxy.getMethod();System.out.println(method);//获取命名空间String namespace = proxy.getNamespace();System.out.println(namespace);//配置System.out.println(proxy.getConfig());//执行结果System.out.println(proxy.getExecuteResult());//调用System.out.println(proxy.getInvocation());System.out.println("1、在action之前");//放行invocation.invoke();System.out.println("3、在action之后");return null;}}


再在struts.xml中配置该拦截器使其生效:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="interceptor" namespace="/interceptor" extends="struts-default"><interceptors><!--  为自己创建的拦截器配置 --><interceptor name="myinterceptor" class="star.july.d_interceptor.Interceptor" ></interceptor><interceptor-stack name="mystack"><interceptor-ref name="myinterceptor"></interceptor-ref><!-- 默认的拦截器 --><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack></interceptors><action name="inter_*" class="star.july.d_interceptor.TypesAction"  method="{1}"><!--  引用拦截器栈 --><interceptor-ref name="mystack"></interceptor-ref><result name="success">/property.jsp</result></action></package> </struts>


0 0
原创粉丝点击