使用struts2的攔截器后混埠,我發(fā)現(xiàn)跳轉(zhuǎn)以后會丟失訪問攜帶的參數(shù)琳钉。調(diào)試了好久才發(fā)現(xiàn),原來struts的所有action都是有默認(rèn)攔截器的盖淡,這個攔截器如下:
<interceptor-ref name="defaultStack"/>
當(dāng)我們在action上配置了我們自己實(shí)現(xiàn)的攔截器后趣苏,struts就會拋棄原有的默認(rèn)攔截器狡相,而默認(rèn)的攔截器有處理參數(shù)的功能,所以就導(dǎo)致我們的參數(shù)在轉(zhuǎn)發(fā)中出現(xiàn)丟失的情況食磕。解決方法很簡單尽棕,就是在我們的攔截器前面配上struts的默認(rèn)攔截器。
<action name="goCharge" class="com.pay.action.WeiXinPayAction" method="change">
<result name="vipList">/mobile/success.jsp</result>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="openId-interceptor"/>
</action>
加上默認(rèn)攔截器后彬伦,我們就可以在邏輯代碼里面獲得請求參數(shù)