我有几个简单的动作:
<action name="edit" class="EditAction">
<result>/WEB-INF/jsp/form.jsp</result>
</action>
<action name="preview" class="PreviewAction">
<result>/WEB-INF/jsp/preview.jsp</result>
<result name="input">/WEB-INF/jsp/form.jsp</result>
</action>
<action name="store" class="StoreAction">
<result>/WEB-INF/jsp/confirmation.jsp</result>
<result name="input">/WEB-INF/jsp/preview.jsp</result>
</action>
<global-results>
<result name="invalid.token">/WEB-INF/jsp/invalidToken.jsp</result>
</global-results>和经典场景:用户与文本输入交互,按下保存,查看预览页面并在页面上按保存保存数据,不需要双击按钮,刷新页面等。
为什么在这种情况下会出现双重提交?
发布于 2012-12-18 17:11:03
甚至在浏览器刷新时,我在struts2中也遇到了双重表单提交问题。我使用post-redirect-get模式解决了这个问题,以避免重复提交表单。这是因为基于POST请求的响应点击“刷新页面”将重新发出POST request.It重复您为到达当前页面所做的操作,即使是双击按钮也是如此。在struts2中,无论是成功还是错误都会发生这种情况。我建议您在任何需要的地方进行此更改。
<action name="onStoreRedirect">
<result name="success" type="redirect">store</result>
</action>
<action name="store" class="StoreAction">
<result>/WEB-INF/jsp/confirmation.jsp</result>
<result name="input">/WEB-INF/jsp/preview.jsp</result>
</action>https://stackoverflow.com/questions/13928587
复制相似问题