| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

Struts2开发自定义拦截器

Interceptor接口

public interface Interceptor extends Serializable {        /**       * Called to let an interceptor clean up any resources it has allocated.       */      void destroy();        /**       * Called after an interceptor is created, but before any requests are processed using       * {@link #intercept(com.opensymphony.xwork2.ActionInvocation) intercept} , giving       * the Interceptor a chance to initialize any needed resources.       */      void init();        /**       * Allows the Interceptor to do some processing on the request before and/or after the rest of the processing of the       * request by the {@link ActionInvocation} or to short-circuit the processing and just return a String return code.       *       * @param invocation the action invocation       * @return the return code, either returned from {@link ActionInvocation#invoke()}, or from the interceptor itself.       * @throws Exception any system-level error, as defined in {@link com.opensymphony.xwork2.Action#execute()}.       */      String intercept(ActionInvocation invocation) throws Exception;  }

可以看出接口中只有三个方法需要实现。

实现Interceptor接口

public class MyInterceptor implements Interceptor {      public void destroy() {          System.out.println("destroy()----");      }      public void init() {          System.out.println("init()----");      }      public String intercept(ActionInvocation invocation) throws Exception {          System.out.println("在Action执行之前");          String result = invocation.invoke();          System.out.println("在Result执行之后");          return result;      }  }

我们需要在struts.xml文件中进行配置:

<package name="helloworld" extends="struts-default">          <interceptors>              <interceptor name="MyInterceptor" class="com.lc.action.MyInterceptor" />          </interceptors>          <action name="loginAction" class="com.lc.action.LoginAction">              <param name="account">test</param>              <result>/welcome.jsp</result>              <interceptor-ref name="MyInterceptor" />              <interceptor-ref name="defaultStack" />          </action>      </package>

首先声明一个自定义的拦截器:

<interceptors>              <interceptor name="MyInterceptor" class="com.lc.action.MyInterceptor" />          </interceptors>

然后在action中引用:

<interceptor-ref name="MyInterceptor" />

执行的结果可想而知:

在Action执行之前  account=test,password=test,submitFlag=login  在Result执行之后

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1432628264254.html
Struts2 Web框架