首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts 2双重表单提交-为什么?

问Struts 2双重表单提交-为什么?
EN

Stack Overflow用户
提问于 2012-12-18 15:54:46
回答 1查看 1.4K关注 0票数 0

我有几个简单的动作:

代码语言:javascript
复制
<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>

和经典场景:用户与文本输入交互,按下保存,查看预览页面并在页面上按保存保存数据,不需要双击按钮,刷新页面等。

为什么在这种情况下会出现双重提交?

EN

回答 1

Stack Overflow用户

发布于 2012-12-18 17:11:03

甚至在浏览器刷新时,我在struts2中也遇到了双重表单提交问题。我使用post-redirect-get模式解决了这个问题,以避免重复提交表单。这是因为基于POST请求的响应点击“刷新页面”将重新发出POST request.It重复您为到达当前页面所做的操作,即使是双击按钮也是如此。在struts2中,无论是成功还是错误都会发生这种情况。我建议您在任何需要的地方进行此更改。

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13928587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档