做一個登錄驗證的頁面,對集成admin的所有package進行保護。
<interceptors>
<interceptor name="adminLoginInterceptor"
class="interceptor.AdminLoginInterceptor" >
<param name="pass0">6B8E49836C0C29251833227E3B0F7FB7F8DC67CE</param>
</interceptor>
</interceptors>
<default-interceptor-ref name="adminLoginInterceptor" />
然而發現所有帶有傳遞參數的均無法正常使用了,在Action中所有的參數無法被注入。
最後發現,struts-default中,默認的攔截器引用是defaultstack,這個攔截器包傳說是經過精心設計的。。所以會把所有的參數注入!。。。
因此要更改默認攔截器,需要加上這個defaultstack
<package name="admin" extends="struts-default" >
<interceptors>
<interceptor name="adminLoginInterceptor"
class="interceptor.AdminLoginInterceptor" >
<param name="pass0">6B8E49836C0C29251833227E3B0F7FB7F8DC67CE</param>
</interceptor>
<interceptor-stack name="adminstack">
<interceptor-ref name="adminLoginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="adminstack" />
<global-results>
<result name="login">/admin/login.jsp</result>
</global-results>
</package>
<default-interceptor-ref name="adminstack" />
<global-results>
<result name="login">/admin/login.jsp</result>
</global-results>
</package>
特別注意紅色兩行的順序!先自定義再Default