2012-02-28 119 views
0

我試圖做到這一點,所以一旦我提交這個表單,我不能點擊後退按鈕,但對於當前配置,我甚至無法加載頁面/表單。我似乎無法弄清楚爲什麼「invalid.token」總是被觸發,從而將我重定向到index.jsp,無論我的表單中有像我應該做的那樣的令牌標記。如果我使用「excludeMethods」過濾器並排除查看然後我的頁面加載,但我可以自由地點擊後退按鈕,所以它仍然無法正常工作。我嘗試過移動interceptor-ref在noLoginStack的上下,但它沒有什麼不同。基於我的調試,我的實際java類甚至沒有被擊中,所以它在那之前失敗了。我究竟做錯了什麼?Struts2令牌攔截器總是失敗

我的行動宣言:

<action name="viewAppointmentLetter" class="edu.ucr.c3.rsummer.controller.instructor.ManageAppointmentLetters"> 
     <interceptor-ref name="noLoginStack"/> 
     <interceptor-ref name="token" /> 

     <result name="invalid.token">/index.jsp</result> 
     <result name="error" type="redirectAction">index.do</result> 
     <result name="input">/instructor/assigned_appts.jsp</result> 
     <result name="view">/instructor/assigned_appts.jsp</result> 
     <result type="redirectAction">index.do</result> 
    </action> 

我assigned_appts.jsp:

<s:form action="saveAppointmentLetter" onsubmit="return verifySubmit();"> 
     <s:token name="token" /> 

     ..... 
</s:form> 

如果它的任何線索,我總是在我的控制檯

WARN org.apache.struts2.util.TokenHelper - Could not find token name in params. 

回答

1

得到這個在Struts2的順序攔截器是非常重要的。你應該按照這個順序。

<interceptor-ref name="token"/> 
<interceptor-ref name="noLoginStack"/> 
+0

它總是會更好地爲您的答案提供一些描述,因爲它可以幫助他人理解您想傳達的內容 – 2012-02-29 02:25:18

+0

@Umesh thanks爲您的建議。 – 2012-02-29 02:43:36

+0

不幸的是,我已經嘗試過,我仍然得到同樣的問題,任何其他建議? – 2012-02-29 17:08:58

0

使用TokenSession interceptor.Had由result name="invalid.token"在具體行動struts.xml的處理結果。 您在該頁面上產生動作的頁面必須在標題中寫入<s:token>標記