Spring MVC Form Tags

Learn how to use Spring MVC form tags, which provide automatic data binding.

Spring MVC Form Tags are a set of tags provided by the Spring Framework to facilitate the creation and handling of HTML forms in Spring MVC applications. These tags are part of the Spring Tag Library and are designed to work seamlessly with Spring’s form-binding and validation mechanisms. They help in creating form elements, binding form data to model attributes, and displaying validation errors. By using the form tags, we can reduce boilerplate code, and make form handling more consistent and easier to manage within a Spring MVC application.

Examples of form tags include <form:form>, <form:input>, <form:checkbox>, <form:radiobutton, and <form:select> etc. The taglib reference of the Spring Tag Library is needed on the JSP page to use the above mentioned form tags.

<%@ taglib prefix="form" uri= "http://www.springframework.org/tags/form" %>
Adding Spring Form Tags reference

To demonstrate the use of Spring MVC form tags, we will create a form add-player-form, where the user will enter information about a player. When the form is submitted, the user will be directed to a confirmation page, player-confirmation, which will echo the data entered in the add-player-form.

To keep the code for Spring MVC form tags separate, we will create a new package io.datajek.springmvc.tennisplayerweb.formtags. We will create a new Athlete class in this package. Initially, this class will have just one field, lastName, along with getter and setter methods and a no-argument constructor.

@Component
public class Athlete {
private String lastName;
public Athlete() {
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Athlete class

Next, we will create a controller class AthleteController to handle requests for adding a tennis player. This class will have two methods with mappings for the /showPlayerForm and /processPlayerForm URLs.

@Controller
public class AthleteController {
//method to handle /showPlayerForm
//method to handle /processPlayerForm
}
AthleteController class

@RequestMapping at class level

Since we are using the same request mappings that were used in the TennisPlayerController, Spring will throw ...

Access this course and 1400+ top-rated courses and projects.