Saltar al contenido

Las anotaciones de validación de arranque de Spring @Valid y @NotBlank no funcionan

El tutorial o código que hallarás en este artículo es la resolución más fácil y válida que hallamos a esta duda o dilema.

Solución:

Si enfrenta este problema en la última versión de Spring Boot (2.3.0), asegúrese de agregar la siguiente dependencia:


    org.springframework.boot
    spring-boot-starter-validation

Observación:
En una versión anterior de Spring Boot (1.4.7), javax.validation solía trabajar fuera de la caja. Pero, después de actualizar a la última versión, las anotaciones fallaron. Agregar la siguiente dependencia por sí sola no funciona:


    javax.validation
    validation-api

Porque esto proporciona la especificación JSR pero no la implementación. También puedes usar hibernate-validator en vez de spring-boot-starter-validation.

Primero, no necesita tener una anotación @Valid para esas variables de clase en UpdatePrintContracts. Puede eliminarlos.

Para activar la validación de una entrada de @Controller, simplemente anote el argumento de entrada como @Valid o @Validated:

@RequestMapping(value=PATH_PRINT_CONTRACTS, method=RequestMethod.POST)
public ResponseEntity printContracts(@Valid @RequestBody  final UpdatePrintContracts updatePrintContracts) throws Exception {

Consulte aquí para obtener una comprensión completa de la validación de modelos en Spring Boot.

Y si quieres comprobar que un string contiene solo caracteres específicos, debe agregar anclas (^ para el comienzo de la string$ para el final del string) para asegurarse de que su patrón coincida con todos los string.Los corchetes son solo para escribir una cantidad,

@Pattern(regexp = "^[\pAlnum]1,32$")

Por último, supongo que tiene los siguientes frascos en su classpath,

.validation-api.jar (contiene la API abstracta y el escáner de anotaciones)

.hibernate-validator.jar (contiene la implementación concreta)

Para cualquiera que tenga este problema con 2.0.1.Final:

En todas las versiones de SpringBoot anteriores a la 2.2, El iniciador de validaciones ya no forma parte del iniciador web

Ver notas aquí

Entonces, todo lo que tiene que hacer es agregar esta dependencia en su archivo build.gradle/pom

GRADO:

implementation 'org.springframework.boot:spring-boot-starter-validation'

MAVEN


 org.springframework.boot
 spring-boot-starter-validation

Comentarios y valoraciones del tutorial

Recuerda difundir este enunciado si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *