2011-05-30 87 views
1

我試圖防止在struts2中提交多個表單。我正在使用tokenSession(TokenSessionStoreInterceptor)。根據其行爲,它只考慮第一個請求並忽略隨後的提交。這裏的問題在於,它在成功完成請求後不顯示操作消息。例如,如果訂單創建成功,它會轉到正確的視圖,但不顯示任何消息,例如正常情況下創建的訂單。任何指針?防止多次提交Struts2:不顯示成功消息

這裏是我的配置:

<action name="createOrder" 
     class="com.example.OrdersAction" method="createOrder"> 
     <interceptor-ref name="storeStack" /> 
     <interceptor-ref name="tokenSession"> 
      <param name="includeMethods">createOrder</param> 
     </interceptor-ref> 
     <result type="tiles" name="input">createOrders</result> 
     <result type="tiles" name="error">createOrders</result> 
     <result name="create" type="redirectAction">order</result> 
     <result name="createAndAdd" type="redirectAction"> 

     </result> 
    </action> 

回答

0

嘗試扭轉你的攔截器的順序。

<action name="createOrder" class="com.example.OrdersAction" method="createOrder"> 
     <interceptor-ref name="tokenSession"> 
      <param name="includeMethods">createOrder</param> 
     </interceptor-ref> 
     <interceptor-ref name="storeStack" /> 
     <result type="tiles" name="input">createOrders</result> 
     <result type="tiles" name="error">createOrders</result> 
     <result name="create" type="redirectAction">order</result> 
     <result name="createAndAdd" type="redirectAction"></result> 
</action> 
+0

嗨,感謝您的回覆。我也嘗試過,這個解決方案似乎在調試代碼的時候工作,我的意思是動作消息持續在動作上。但是在正常模式下它不起作用。 – Neo 2011-06-01 16:37:40

+0

爲什麼這會起作用...我有一個類似的問題,但我只是想知道爲什麼你會希望tokenSession在棧頂執行,而不是底部。 – JasonStoltz 2011-06-07 14:19:36