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>

相關文章
相關標籤/搜索