在《 實現struts2的CRUD中的許可權控制》這篇文章中,我提了一個問題,就是說在自己實現了許可權攔截器後,每個action都要配置攔截器後才可以在調用他後進行許可權檢查,今天看了一下資料,可以設定預設的攔截器,在沒有顯示設定攔截器時就會使用預設攔截器,達到該目的,以後該package中的方法都會使用預設的“許可權攔截器”,樣本設定檔如下:
<package name="admin" extends="struts-default" namespace="/admin">
<interceptors>
<interceptor name="auth"
class="com.waimai.utils.AuthorizationInterceptor" />
</interceptors>
<default-interceptor-ref name="auth" />
<global-results>
<result name="login" type="redirect">
/security/login.jsp
</result>
</global-results>
<action name="List" class="com.waimai.web.CaiTypeAction"
method="list">
<result>listCaiType.jsp</result>
</action>
<action name="Edit" class="com.waimai.web.CaiTypeAction"
method="load">
<result>editCaiType.jsp</result>
</action>
<action name="Store" class="com.waimai.web.CaiTypeAction"
method="store">
<result name="input" type="dispatcher">
editCaiType.jsp
</result>
<result type="redirect">List.action</result>
</action>
<action name="Remove" class="com.waimai.web.CaiTypeAction"
method="remove">
<result type="redirect">List.action</result>
</action>
</package>
上面得配置中大家可以看到我們使用了全域result也是基於要解決像每個action都要配置攔截器一樣的重複問題,其實全域result也就是為了減少重複,回過頭來看,預設攔截器是不是也可以全域攔截器呢,有這樣的味道,呵呵...