Struts2攔截器介紹
今天給大家介紹一下struts2的攔截器,如果對java基礎知識不是很熟悉的可以先看看java教程, 好了言歸正傳大家請看。
一、什麼是攔截器?
1、攔截器,在AOP(Aspect-Oriented Programming<面向切面編程>)中用於在某個方法或字段被訪問之前,進行攔截然後在之前或之後加入某些操作。攔截是AOP的一種實現策略。
在Webwork的中文文檔的解釋爲——攔截器是動態攔截Action調用的對象。它提供了一種機制可以使開發者可以定義在一個action執行的前後執行的代碼,也可以在一個action執行前阻止其執行。同時也是提供了一種可以提取action中可重用的部分的方式。
2、攔截器鏈(Interceptor Chain,在Struts 2中稱爲攔截器棧Interceptor Stack)。攔截器鏈就是將攔截器按一定的順序聯結成一條鏈。在訪問被攔截的方法或字段時,攔截器鏈中的攔截器就會按其之前定義的順序被調用。
3、如何使用struts2攔截器,或者自定義攔截器。特別注意,在使用攔截器的時候,在Action裏面必須最後一定要引用struts2自帶的攔截器缺省堆棧defaultStack,如下(這裏我是引用了struts2自帶的checkbox攔截器): <interceptor-ref name="checkbox">
4、也可以改爲對全局Action設置自己需要的攔截器,如下:
<param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>(必須加,否則出錯)
在struts.xml裏面定義全局的配置設置 <package name="struts-shop" extends="struts-default">
二、Struts2自帶的配置及其攔截器配置
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="checkbox">
<param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>(這句是設置所有Action自動調用的攔截器堆棧)
</package>
struts-action.xml裏面配置Action如下:
<package name="LogonAdmin" extends="struts-shop">(這裏擴展struts.xml裏面定義的配置就可以了)
<action name="logon" class="logonAction">
<result>/jsp/smeishop/admin/index.jsp</result> <result name="error">/jsp/smeishop/admin/logon.jsp</result>
<result name="input">/jsp/smeishop/admin/logon.jsp</result>
</action>
<action name="logout" class="logoutAction">
<result>/jsp/smeishop/admin/logon.jsp</result>
</action>
</package>
更多詳情請查看:59biye網