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:

See the gist on github.

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:

See the gist on github.

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:

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.

See the gist on github.

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í:

See the gist on github.

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:

See the gist on github.

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.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

3 días hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

3 días hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

3 días hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

3 días hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 semana hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

1 semana hace

Esta web usa cookies.