struts自定义拦截器配置

配置本身的拦截器能够先参照下系统的拦截器是怎么配置的,首先打开struts-default.xml搜索下interceptor;系统里的拦截器有不少,拦截器都是放在堆栈里的,系统引用的是默认堆栈, <interceptor-stack name="defaultStack">;ide

struts2.3版本下的默认堆栈里放有19个拦截器。咱们随便找一个系统拦截器,找到那个类点进去,能够看到,系统的拦截器都继承自AbstractInterceptor,知道这些,那么咱们能够本身建立一个本身的拦截器了:如spa

package cn.jbit.Iterceptor;xml

 

import com.opensymphony.xwork2.ActionInvocation;继承

import com.opensymphony.xwork2.interceptor.AbstractInterceptor;it

 

public class MyInterceptor extends AbstractInterceptor {io

private static final long serialVersionUID = 1L;class

 

@Overrideimport

public String intercept(ActionInvocation invoc) throws Exception {struts2

long begin=System.currentTimeMillis();配置

System.out.println("开始时间为:"+begin);

//拦截器和过滤器类似,都是一个链,都得有一个放行的方法,否则就无法继续进行了

String result=invoc.invoke();

//拦截器返回的结果是携带action的返回结果

System.out.println("结果为:"+result);

long end =System.currentTimeMillis();

    System.out.println("结束时间为:"+end);

    System.out.println("时间差为:"+(end-begin));

return result;

}

}

最后在struts.xml配置文件里的packge里加入(切记放置顺序,拦截器要放在action标签的上面)

<!-- 本身手动配置的拦截器 -->

        <interceptors>

          <!-- 本身的拦截器 -->

          <interceptor name="myinter" class="cn.jbit.Iterceptor.MyInterceptor"></interceptor>

          <!-- 把拦截器放进本身的堆栈中 -->

          <interceptor-stack name="mystack">

          <!-- 本身的堆栈首先引用本身的拦截器 -->

          <interceptor-ref name="myinter"></interceptor-ref>

          <!-- 本身的堆栈再加上系统配好的19个拦截器 -->

          <interceptor-ref name="defaultStack"></interceptor-ref>

          </interceptor-stack>

        </interceptors>

        

        <!-- 默认引用本身的堆栈拦截器 -->

        <default-interceptor-ref name="mystack"></default-interceptor-ref>

相关文章
相关标签/搜索