Procesar formulario con Spring Boot

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:

Procesar formulario con Spring Boot

Ejemplo del formulario que vamos a enviar al controlador de Spring Boot

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.

Procesar formulario con Spring Boot

Por parzibyte Tiempo de lectura: 2 min
0