Below are some Spring MVC Form Tags Examples. These shows how to use form inputs, radiobutton, checkboxes and error handlers.
Consider the below class as our DTO:
public class User {
private String username;
private String password;
private String[] genderArray = {"Male", "Female"};
private String gender;
private String[] divisionArray = {"IT", "Finance", "Administration", "Business"};
private String division;
private String[] languagesArray = {"Java", "C#", "C", "Python", "Ruby"};
private String[] languages;
public String[] getGenderArray() {
return genderArray;
}
public String[] getDivisionArray() {
return divisionArray;
}
public String[] getLanguagesArray() {
return languagesArray;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getDivision() {
return division;
}
public void setDivision(String division) {
this.division = division;
}
public String[] getLanguages() {
return languages;
}
public void setLanguages(String[] languages) {
this.languages = languages;
}
}
In our controller method, we have added our user form as:
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String registerUser(ModelMap modelMap) {
modelMap.addAttribute("user_form", new User());
return "register";
}
First, add the form taglib on top of your jsp file:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
To add input type text for username field:
<form:input path="username" />
To add input type password for password field:
<form:password path="password" />
There are two ways you can add radiobuttons in your form. First, if you have list of items for your radio buttons, you can just:
<form:radiobuttons path="gender" items="${user_form.genderArray}" />
this will get the gender array from user dto and populate it with radio buttons. The way is that you can manually create your radio button:
<form:radiobutton path="gender" value="Male" /> <form:radiobutton path="gender" value="Female" />
<form:select id="month" path="heldMonth">
<form:option value="">Select Division</form:option>
<form:options items="${user_form.divisionArray}" />
</form:select>
<form:checkboxes items="${user_form.languages}" path="languages" />
Form errors are those error texts that are automatically added if there is a validation error in the form. To add form error, add the below code to your jsp where you want to show the error:
<form:errors path="username" />
The default element for error is span. To change this, add the attribute element with your preferred element. For example, instead of span, we want to use p element:
<form:errors path="username" element="p" />