struts2中MethodFilterInterceptor类的用法

来源:互联网 发布:淘宝卖零食需要执照吗 编辑:程序博客网 时间:2024/06/01 11:49

这个拦截器用于拦截部分函数。

拦截器类

package com.test.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;public class FunctionInterceptor extends MethodFilterInterceptor{@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {System.out.println("FunctionInterceptor拦截器之前。。。。。。。。。。。");String result=invocation.invoke();System.out.println("FunctionInterceptor。。。。。。。。。。拦截器之后。");return result;}}

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>  <constant name="struts.enable.DynamicMethodInvocation" value="true" />    <constant name="struts.devMode" value="true" />     <package name="default" namespace="" extends="struts-default">        <!-- 这里是拦截器的配置 -->        <interceptors>            <interceptor name="test" class="com.test.interceptor.TestInterceptor"></interceptor>              <!-- 用于仅拦截某些方法 -->            <interceptor name="function" class="com.test.interceptor.FunctionInterceptor">                <param name="includeMethods">add</param>            </interceptor>               <interceptor-stack name="myStack">                 <interceptor-ref name="test"/>                 <interceptor-ref name="function"/>                 <interceptor-ref name="defaultStack"/>             </interceptor-stack>        </interceptors>            <!-- 正确和错误的分别跳转,input是在验证失败后会跳转的页面 -->    <action name="data" class="com.test.action.ValideAction">        <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->         <result name="success">/result.jsp</result>        <result name="input">/login.jsp</result>    </action>        <action name="FunctionInterceptor" class="com.test.action.ValideAction" method="add">        <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->         <result name="success">/result.jsp</result>        <result name="input">/login.jsp</result>    </action>    <action name="dele" class="com.test.action.ValideAction" method="dele">        <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用拦截器的动作 -->         <result name="success">/result.jsp</result>        <result name="input">/login.jsp</result>    </action>    </package></struts>

主要是这样一段代码:

<interceptor name="function" class="com.test.interceptor.FunctionInterceptor">
                <param name="includeMethods">add</param>
            </interceptor> 

说明拦截的方法只有add,不拦截其他方法。

0 0