攔截器spa
1.自定義攔截器類,必須繼承AbstractInterceptor類(抽象類)xml
重寫public String intercept (ActionInvocation arg0)對象
2.在Struts.xml文件中建立攔截器對象,格式: 繼承
<package>get
<interceptors>io
<interceptor name=」攔截器名」 class=」攔截器類全名」>class
[<param name=」成員變量名」 >值</~~>]變量
</~~>方法
</~~>im
</~~>
3.爲Action註冊攔截器 格式:
<action>
…
<interceptor-ref name=」攔截器名」>
[<param name=」成員變量」>] 做用: 成員變量賦值
</~~>
…
</~~>
注意事項 1 當引入自定義攔截器時會致使默認攔截器失效,此時需從新引入默認攔截器棧
格式:<inyrtceptor-ref name=」defaultStack」>
2 攔截器的註冊順序即爲攔截器的執行時順序。
3 在攔截器中參數arg0可得到
Action Context ac = arg.getInvocationContext();
Map Sesstion = ac.getSession();
攔截器棧的使用
步驟
1新建攔截器棧 格式
<interceptors>
<interceptor …/>
<interceptor-stack name=」棧名」>
< interceptor-ref name=」攔截器名/>
< /interceptor-stack>
< /interceptor >
2 註冊攔截器棧 格式
<action …>
< interceptor-ref name=」棧名」/>
</action>
過濾性攔截
a.新建攔截器類 繼承AbstractInterceptor類 重寫doInterceptor(方法)
b.新建或註冊攔截器時
格式:
<interceptor interceptor-ref>
<param name=」excludeMethods」>不進行攔截的Action方法名[名]
</param>
<param name=」includeMethods」>excute,abc,aa,cc,bb</param>
</interceptor interceptor-ref>