Primavera – Validación de MVC

El marco Spring MVC nos proporciona validadores estándar predefinidos para validar los datos de entrada del usuario de una manera simple y directa. Bean Validation API es el enfoque popular para validaciones de datos en aplicaciones Spring. Aquí usaremos la implementación de hibernación de la API de validación de Bean conocida como Hibernate Validator. 

Anotaciones de validación

Estas son algunas de las anotaciones de validación más utilizadas.

1. @Min(value=) – Comprueba si el valor anotado es mayor o igual que el valor mínimo especificado.

2. @Max(value=) – Comprueba si el valor anotado es menor o igual que el valor máximo especificado. ‘

@Min(value = 18, message = "Age must be greater than 18")
@Max(value = 25, message = "Age must be smaller than 25")
private int age;

3. @NotNull : comprueba que el valor anotado no sea nulo.

4. @NotBlank : comprueba que la secuencia/string de caracteres anotados no sea nula y que la longitud recortada sea mayor que 0.

5. @NotEmpty : comprueba que el elemento anotado no sea nulo ni esté vacío.

// @NotNull: The CharSequence, Collection, Map or Array object is not null, but can be empty.
// @NotEmpty: The CharSequence, Collection, Map or Array object is not null and size > 0.
// @NotBlank: The string is not null and the trimmed length is greater than zero.

@NotEmpty(message = "First name cannot be null and must have size greater than 0")
private String firstName;

@NotNull(message = "Second name must not be null, empty value/space can be considered")
private String lastName;

@NotBlank(message = "Username must not be null and must contain 1 or more characters")
private String userName;

6. @Email : comprueba si la secuencia/string de caracteres especificada es una dirección de correo electrónico válida.

@Email(message = "Email should be valid")
private String email;

7. @Pattern(regex=, flags=) – Verifica que la string anotada coincida con la expresión regular considerando las coincidencias de la bandera dada.

// The regex specifies that the password can contain characters from a to z, A to Z and 0-9 only,
// also it must be in between 6 to 10 characters long.

@Pattern(regexp = "^[a-zA-Z0-9]{6,10}$")
private String password;

8. @AssertFalse : comprueba que el elemento anotado sea falso.

9. @AssertTrue: comprueba que el elemento anotado sea verdadero.

@AssertTrue 
private boolean isWorking;

@AssertFalse
private boolean isStudent;

10. @NegativeOrZero : comprueba si el elemento dado es menor o igual a 0.

11. @Null : comprueba que el valor anotado sea nulo.

12. @Negative : comprueba si el elemento es estrictamente menor que 0.

13. @Positive : comprueba si el elemento es estrictamente mayor que 0.

14. @PositiveOrZero – Comprueba si el elemento dado es mayor o igual a 0.

@Positive
private int operand1;

@Negative
private int operand2;

@PositiveOrZero
private int operand3

@NegativeOrZero
private int operand4;

@Null
private int nullVal;

15. @Size : comprueba si el tamaño del elemento anotado se encuentra entre el valor mínimo y el valor máximo proporcionado (incluido).

@Size(min = 10, max = 200, message = "About Me must be between 10 and 200 characters")
private String aboutMe;

Ejemplo 1: clase de usuario

Java

// Java Program to Illustrate Calculator class
 
package com.example.springmvc;
 
// Importing required classes
import javax.validation.constraints.*;
import lombok.Data;
 
// Annotation
@Data
 
// Class
public class User {
 
    @NotEmpty(
        message
        = "First name cannot be null and must have size greater than 0")
    private String firstName;
 
    @NotNull(
        message
        = "Second name must not be null, empty value/space can be considered")
    private String lastName;
 
    @NotBlank(
        message
        = "Username must not be null and must contain 1 or more characters")
    private String userName;
    ;
 
    @AssertTrue private boolean working;
 
    @Min(value = 18,
         message = "Age must be greater than 18")
    @Max(value = 25,
         message = "Age must be smaller than 25")
    private int age;
 
    @Size(
        min = 10, max = 200,
        message
        = "About Me must be between 10 and 200 characters")
    private String aboutMe;
 
    @Email(message = "Email should be valid")
    private String email;
 
    @Pattern(regexp = "^[a-zA-Z0-9]{6,10}$")
    private String password;
 
    @AssertTrue private boolean isWorking;
 
    @AssertFalse private boolean isStudent;
}

Ejemplo 2: Clase de calculadora

Java

// Java Program to Illustrate Calculator class
 
package com.example.springmvc;
 
// Importing required classes
import javax.validation.constraints.*;
import lombok.Data;
 
// Annotation
@Data
// Class
public class Calculator {
 
    // Operand4 can contain values > 0 only
    @Positive private int operand1;
 
    // Operand4 can contain values <  only
    @Negative private int operand2;
 
    // Operand4 can contain values >= 0 only
    @PositiveOrZero private int operand3;
 
    // Operand4 can contain values <= 0 only
    @NegativeOrZero private int operand4;
 
    // Value of operator must be assigned at runtime.
    @Null private char operator;
}

Nota: @Data utilizado en el código completo, es una anotación para usar lombok. Lombok ayuda a eliminar el código repetitivo como getters, setters, constructores, etc.

Dependencia

(A) Para Maven: agregue la siguiente dependencia al archivo pom.xml.

XML

<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.2.0.Final</version>
</dependency>

(B) Para Gradle: agregue la siguiente dependencia al archivo build.gradle.

Java

// https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator
implementation group : 'org.hibernate.validator',name : 'hibernate-validator', version: '6.2.0.Final'
// Or
// implementation
// 'javax.validation:validation-api:2.0.1.Final'

Publicación traducida automáticamente

Artículo escrito por anuanu0_0 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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