Ejercicio: Validación de Datos en un Formulario con Spring MVC
Implementa una aplicación web en Spring MVC que valide los datos de un usuario antes de enviarlos a una página de destino. La aplicación debe contar con un formulario de registro donde el usuario ingrese su nombre, correo electrónico y contraseña.
Requisitos:
Modelo de Datos (Usuario)
Crear una clase Usuario con los siguientes atributos:
- nombre (String): No puede estar vacío ni contener solo espacios en blanco.
- correo (String): No puede estar vacío.
- password (String): No puede estar vacío ni contener solo espacios en blanco.
Utilizar anotaciones de validación de Javax Validation para garantizar que los campos cumplan estas reglas:
@NotBlank(message = "El nombre no puede quedar vacío")
→ Para el campo nombre.@NotEmpty(message = "El correo no puede quedar sin rellenar")
→ Para el campo correo.@NotBlank(message = "La contraseña no puede estar en blanco")
→ Para el campo password.
Controlador (Controlador)
Implementar un controlador en Spring MVC con dos métodos:
- paginaInicio(): Carga la vista del formulario e inicializa un objeto Usuario.
- paginaDestino(): Recibe los datos del formulario y los valida. Si hay errores, se vuelve a mostrar el formulario con mensajes de error; si los datos son correctos, se redirige a una página de destino.
Vistas (index.jsp y paginaDestino.jsp)
index.jsp
Formulario de entrada con los campos nombre, correo y password.
- Utilizar la etiqueta
<form:form>
de Spring para el envío de datos. - Mostrar mensajes de error en caso de validaciones incorrectas.
paginaDestino.jsp
Muestra los datos ingresados por el usuario después de una validación exitosa.

Validación de Formulario con @NotBlank y @Email usando Hibernate Validator en Spring
Implementa una aplicación web en Spring MVC que utilice Hibernate Validator para validar los datos de un formulario antes de enviarlos a una página de destino. En este caso, se requiere que uno de los campos del formulario sea validado con las anotaciones @NotBlank
y @Email
, asegurando que no puedan estar vacíos o ser inválidos.
Requisitos:
Modelo de Datos (Usuario)
Crea una clase Usuario con los siguientes atributos:
- nombre (String): El nombre del usuario, debe ser obligatorio (no puede ser vacío ni contener solo espacios en blanco). Utiliza la anotación
@NotBlank
de Hibernate Validator. - correo (String): El correo del usuario, debe ser obligatorio y seguir el formato correcto de correo electrónico. Utiliza las anotaciones
@NotBlank
para asegurarte de que no esté vacío y@Email
para verificar que tiene un formato de correo válido. - edad (Integer): La edad del usuario, también debe ser obligatoria (no puede ser nula), usa la anotación
@NotNull
.
Controlador (UsuarioController)
Implementa un controlador en Spring MVC con dos métodos:
- paginaInicio(): Carga la vista del formulario e inicializa un objeto Usuario.
- paginaDestino(): Recibe los datos del formulario, los valida utilizando las anotaciones
@NotBlank
y@Email
en los campos correspondientes. Si hay errores de validación (por ejemplo, si algún campo está vacío o no cumple con el formato requerido), se vuelve a mostrar el formulario con los mensajes de error. Si los datos son correctos, se redirige a una página de destino mostrando un mensaje de éxito.
Vistas (index.jsp y paginaDestino.jsp)
index.jsp: Crea un formulario HTML que permita al usuario ingresar su nombre, correo y edad. Asegúrate de que los campos de nombre y correo sean obligatorios y que el correo tenga un formato válido. Utiliza la etiqueta <form:form>
de Spring para enviar los datos. Muestra mensajes de error si algún campo está vacío o no cumple con las validaciones requeridas.
paginaDestino.jsp: Muestra los datos del usuario ingresados después de una validación exitosa. Esta página debe mostrar un mensaje indicando que los datos fueron recibidos correctamente.

Validación de Formulario con @Size, @Min y @Max usando Hibernate Validator en Spring
Implementa una aplicación web en Spring MVC que utilice Hibernate Validator para validar los datos de un formulario antes de enviarlos a una página de destino.
En este caso, se requiere que algunos campos sean validados con las anotaciones @Size
, @Min
y @Max
, asegurando que cumplan con las restricciones especificadas.
Requisitos:
Modelo de Datos (Producto)
Crea una clase Producto
con los siguientes atributos:
-
nombre (String): El nombre del producto, debe tener entre 3 y 50 caracteres.
Utiliza la anotación
@Size(min = 3, max = 50)
de Hibernate Validator. -
descripcion (String): La descripción del producto debe tener entre 10 y 200 caracteres.
Usa la anotación
@Size(min = 10, max = 200)
. -
precio (double): El precio del producto, debe tener un valor mínimo de 1 y no puede superar los 10000.
Usa las anotaciones
@Min(1)
y@Max(10000)
para la validación.
Controlador (ProductoController)
Implementa un controlador en Spring MVC con dos métodos:
-
paginaInicio(): Carga la vista del formulario e inicializa un objeto
Producto
. -
paginaDestino(): Recibe los datos del formulario y los valida utilizando las anotaciones
@Size
,@Min
y@Max
. Si hay errores de validación, se vuelve a mostrar el formulario con los mensajes de error. Si los datos son correctos, se redirige a una página de destino mostrando un mensaje de éxito con la información ingresada.
Vistas (index.jsp y paginaDestino.jsp)
index.jsp:
Crea un formulario HTML que permita al usuario ingresar un producto con los siguientes campos: nombre, descripción y precio.
Asegúrate de que los campos sean validados en el servidor.
Usa <form:form>
de Spring para enviar los datos y muestra los mensajes de error si algún campo es inválido.
paginaDestino.jsp:
Muestra los datos del producto ingresado después de una validación exitosa. También muestra un mensaje indicando que la validación fue realizada correctamente.

Formulario de Registro de Usuarios con Validaciones en Spring
Desarrolla una aplicación web en Spring que permita a los usuarios registrarse llenando un formulario con diferentes campos. Cada campo debe estar validado con las anotaciones de javax.validation
para garantizar que los datos ingresados sean correctos.
Estructura del proyecto
- Clase
Usuario.java
: Representa al usuario y contiene validaciones para cada campo. - Controlador
UsuarioController.java
: Maneja las solicitudes del formulario. - Página
index.jsp
: Contiene el formulario y muestra mensajes de error si es necesario.
Requisitos del formulario
- ✅ Nombre de usuario
- No puede estar vacío. (
@NotBlank
) - Debe tener entre 3 y 20 caracteres. (
@Size(min=3, max=20)
) - Solo puede contener letras y números. (
@Pattern(regexp="^[a-zA-Z0-9]+$")
)
- No puede estar vacío. (
- ✅ Correo electrónico
- No puede estar vacío. (
@NotBlank
) - Debe ser un email válido. (
@Email
)
- No puede estar vacío. (
- ✅ Contraseña
- No puede estar vacía. (
@NotBlank
) - Debe tener entre 6 y 20 caracteres. (
@Size(min=6, max=20)
) - Debe contener al menos una mayúscula y un número. (
@Pattern(regexp = "^(?=.*[A-Z])(?=.*[0-9]).{6,}$")
)
- No puede estar vacía. (
- ✅ Edad
- Mínimo 18 años, máximo 99. (
@Min(18), @Max(99)
) - No puede ser null. (
@NotNull
)
- Mínimo 18 años, máximo 99. (
- Saldo
- No puede ser negativo. (
@Positive
)
- No puede ser negativo. (
- ✅ Fecha de nacimiento
- Debe estar en el pasado o presente. (
@PastOrPresent
) - No puede ser null. (
@NotNull
) - Se almacenará como
LocalDate
con el formatodd-MM-yyyy
.
- Debe estar en el pasado o presente. (
- ✅ Aceptación de términos y condiciones
- Debe ser aceptado obligatoriamente. (
@AssertTrue
)
- Debe ser aceptado obligatoriamente. (
Consideraciones técnicas
- La fecha de nacimiento debe ingresarse en el formato
dd-MM-yyyy
en el formulario, por lo que elinput
en HTML debe ser compatible con esto. - El formulario debe validar los datos antes de enviarlos y mostrar mensajes de error si hay validaciones incorrectas.
- Los mensajes de error deben mostrarse al usuario en
index.jsp
si hay validaciones incorrectas.
