2011-05-30 90 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