Enviar datos por formulario y procesarlos usando Spring Boot
En este post te voy a enseñar a obtener datos de formulario en Spring Boot usando el motor de plantillas Thymeleaf para mostrar el formulario.
Vamos a ver un ejemplo de un formulario, desde dibujarlo hasta procesarlo en el controlador, usando una clase.
La entidad
Para trabajar con formularios en Spring Boot debemos definir una clase que opcionalmente puede ser una entidad. En este caso vamos a poner un ejemplo para un Producto.
Comenzamos definiendo la clase:
Es una simple clase que a su vez es entidad. Tiene getters, setters y propiedades.
Como lo dije hace un momento: no es obligatorio que la clase sea una entidad.
La ruta del formulario
Para mostrar el formulario debemos definir una ruta en donde se va a dibujar el mismo. Al dibujar la vista debemos pasar un objeto vacío de nuestra clase.
Entonces dentro de nuestro controlador definimos la ruta:
Cuando se visite /agregar
se mostrará la vista llamada agregar_producto
dentro del directorio productos
, la cual veremos más adelante.
Por ahora fíjate en que estamos inyectando un modelo en la línea 2, y en la línea 3 estamos agregando el atributo llamado producto
con una instancia de la clase Producto
, que por defecto no tiene datos.
La vista del formulario
El formulario que vamos a procesar con Spring Boot es el siguiente:

Ahora en nuestra vista definimos un formulario, y a cada campo le asignamos una propiedad de nuestro objeto usando th:field
.
Además, definimos el atributo th:object
para indicar al formulario cuál objeto estamos llenando.
Cada input
está relacionado con una propiedad del objeto. También es muy importante ver el th:action
del formulario, el cual irá a productos/agregar
pero con el método POST
.
Procesar formulario en controlador de Spring Boot
De nuevo en nuestro controlador vamos a definir otra ruta en donde se va a procesar el formulario enviado en Spring Boot.
La ruta queda así:
Definimos nuestra ruta e inyectamos nuestra clase usando la anotación @ModelAttribute
, ahora tenemos todos los campos llenos a través de la variable producto, con ella se puede hacer cualquier cosa que se haría con el objeto normal.
Código completo del controlador
Si quieres ver las anotaciones y el código del controlador (para guiarte y saber cuáles cosas importar) aquí lo dejo:
Recuerda que es una referencia, ya que en mi caso utilizo un repositorio, cosa que no tiene que ver con esto ya que aquí solo vimos cómo procesar un formulario con Spring Boot.
Para implementar este ejemplo, lo único que tienes hacer es crear tu propia clase y definir tus formularios.