0

I have a few simple actions:

<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>

and classic scenario: user interacts with text inputs, press Save, view a Preview page and press Save on it to save data, without double-press buttons, refreshing page etc.

Why double submit can occurs in such situation?

Vladimir Kishlaly
  • 1,872
  • 1
  • 16
  • 26

1 Answers1

1

Even I had double form submit problem in struts2 on browser refresh. I resolved the problem using post-redirect-get pattern to avoid double or duplicate form submissions. It happens because hitting "refresh page" for a reponse based on a POST request will re-issue the POST request.It repeats what you did to reach current page even for double button press. It happens for both success and error in struts2. I suggets you to make this change where-ever necessary.

<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>
DarkHorse
  • 2,740
  • 19
  • 28