Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Creando un filtro personalizado de fecha con mensaje segun error

Otro problema que necesitamos resolver, es que el mensaje de error a emitir, puede ser distinto según el error que exista; en este caso vamos a ver como tratar dos mensajes de error en el mismo campo de fecha; uno cuando el formato de entrada es erróneo, y otro cuando la fecha sea anterior a la actual, y, todo eso, creando una anotación (CheckFechaFuturaValidation)

Preparando el entorno

Para poder crear y utilizar las anotaciones en un programa de SpringBoot, debemos añadir una dependencia, si estas utilizando Maven, deberás añadir

Creando la anotación @CheckFechaFuturaValidation

Como ya vimos anterioermente (aqui para @DniConstraint, y aqui para @CheckCineValidation), lo primero es crear la interface que nos define el nombre, por lo que, escribimos

CheckFechaFuturaValidation.java

Aunque luego, utilizaremos mensajes mejor orientados, aqui dejo definido un posible mensaje, mas que nada, para documentación. El resto de datos son los que he ido comentando en articulos precedentes.

El siguiente paso, es crear la clase que utilizaremos para validar.

Esta clase, debe implementar otra Interfaz, (ConstraintValidator) que es generica, y debemos incluir el nombre de la Interfaz generada anteriormente, y el tipo de campo que vamos a recibir, a continuacion, os indico mi clase

CheckFechaFuturaValidator.java

Como siempre, he utilizado el módulo Rutinas, que ya habíamos visto y testeado al inicio de la serie, pero esta vez, para poder cambiar los mensajes, debo deshabilitar el mensaje por defecto (ctx.disableDefaultConstraintViolation()😉 y luego añado el mensaje que me interesa , una vez detectado el error concreto. Como podeis ver, no es demasiado complicado

Ya despues, solo queda añadir la validación al campo indicado, que en mi caso es en EntradaDTO

Naturalmente, este campo debe recibir una String, si no, no tendría sentido comprobar formato, pero como este DTO es para la entrada, se adapta perfectamente

Como siempre, nos aseguramos que el controlador tenga especificado el @Valid alli donde queramos comprobar los datos; en mi caso, en el Post

y en el Update

y lanzamos la prueba con Postman, teniendo activo nuestro ControllerExceptionValidation que veremos en el siguiente articulo

En caso de que indiquemos mal el intervalo, si nos equivocaramos en el formato, seria

Y, si no indicáramos fecha, seria:

Conclusión

Todo este desarrollo lo teneis explicado con mas detalle en youTube (a partir de1/02/24) , y, aunque es conveniente que intentéis escribirlo TODO vosotros, si queréis renunciar a ello, lo teneis tambien en GitHub

Este desarrollo esta hecho para disponer de un fuente para explicar otros temas, tal y como se indica en Visión de conjunto con Spring

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 34.204.169.230
Proxy: 34.204.169.230
Remote host: ec2-34-204-169-230.compute-1.amazonaws.com
Remote port: 50950
** 34.204.169.230, 172.70.175.232