首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2中自定义拦截器以致Action注入参数丢失

2012-10-20 
Struts2中自定义拦截器导致Action注入参数丢失做一个登录验证的页面,对集成admin的所有package进行保护。??

Struts2中自定义拦截器导致Action注入参数丢失

做一个登录验证的页面,对集成admin的所有package进行保护。

??????? <interceptors>
??? <interceptor name="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"
???? >
??????????????????? <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

热点排行