Programming Tutorials

(追記) (追記ここまで)

Handling Duplicate Form Submissions in Struts

By: Ivan Lim in Struts Tutorials on 2023年05月04日 [フレーム]

Handling Duplicate Form Submissions is an important aspect of web application development, as it helps to prevent accidental or intentional repeated submission of the same form data. Struts provides some built-in support for handling duplicate form submissions, which can be implemented using the following steps:

  1. Implement the TokenTag in the JSP: To prevent duplicate form submission, Struts provides a built-in mechanism called TokenTag. To use this, you need to add the TokenTag in the form JSP. This tag generates a unique token for each form, which is submitted along with the form data. When the form is submitted, Struts checks if the token is valid or not. If the token is not valid, Struts considers the form submission as a duplicate submission.
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:form action="/submitForm.do">
 <html:hidden property="token"/>
 <!-- Other form fields -->
 <html:submit value="Submit"/>
</html:form>
  1. Add the token to the ActionForm: In the action class, add the generated token to the ActionForm. This will enable Struts to validate the token during form submission.
public class MyActionForm extends ActionForm {
 private String token;
 public String getToken() {
 return token;
 }
 public void setToken(String token) {
 this.token = token;
 }
}
  1. Validate the token in the Action class: In the action class, validate the token to ensure that it is valid. If the token is not valid, return an error message to the user.
public class MyAction extends Action {
 public ActionForward execute(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) throws Exception {
 MyActionForm myForm = (MyActionForm) form;
 String token = myForm.getToken();
 // Validate the token
 if (!isTokenValid(request)) {
 // Duplicate form submission
 return mapping.findForward("duplicate");
 }
 // Process the form data
 // ...
 // Reset the token to prevent duplicate form submission
 resetToken(request);
 // Return success forward
 return mapping.findForward("success");
 }
}
  1. Configure the ActionForm and Action classes: In the struts-config.xml file, configure the ActionForm and Action classes.
<form-beans>
 <form-bean name="myForm" type="com.example.MyActionForm"/>
</form-beans>
<action-mappings>
 <action path="/submitForm" name="myForm" type="com.example.MyAction"
 scope="request">
 <forward name="success" path="/success.jsp"/>
 <forward name="duplicate" path="/duplicate.jsp"/>
 </action>
</action-mappings>

The above steps will help in preventing duplicate form submissions in Struts. It is important to handle duplicate form submissions, as it can lead to unwanted processing of the same data, which can cause data inconsistency and other issues.




(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /