2010-07-20 71 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代码, 它会尝试显示,原来,有效 动作调用会显示同样的 响应 如果首先没有提交多个请求 。