2010-07-20 93 views
0

我正在使用struts2.1.8。在這裏我想處理雙重提交。 truts2提供TokenInterceptor。所以如果我提交兩次,它會返回「invalid.token」作爲結果名稱。但我想顯示我提交兩次的同一頁面。struts2雙提交問題

回答

2

既然你想要顯示您重複提交的同一頁面,您需要在要防止雙重提交的<action>定義中創建invalid.token結果:

<action name="some-action" class="foo.Bar"> 
    <interceptor-ref name="token"/> 
    <result name="success">/WEB-INF/some/action/success.jsp</result> 
    <result name="invalid.token">/WEB-INF/some/action/input.jsp</result> 
</action> 

The docs提供更多信息,您可能還想考慮查看Token Session Interceptor

1

看看TokenSessionInterceptor,它建立在TokenInterceptor上。從文檔:

象正常的令牌攔截, 這個攔截器將嘗試 提供智能故障轉移在 事件中使用 同一個會話的多個請求。也就是說,它會阻止 後續請求,直到第 請求完成,然後代替 返回invalid.token代碼, 它會嘗試顯示,原來,有效 動作調用會顯示同樣的 響應 如果首先沒有提交多個請求 。