Restricciones incorporadas en la validación de frijoles
@Null El elemento anotado debe ser nulo
@Notnull El elemento anotado no debe ser nulo
@AssertTrue El elemento anotado debe ser verdad
@Assertfalse El elemento anotado debe ser falso
@Min (valor) El elemento anotado debe ser un número, y su valor debe ser mayor o igual al valor mínimo especificado.
@Max (valor) El elemento anotado debe ser un número, y su valor debe ser menor o igual al valor máximo especificado.
@Decimalmin (valor) El elemento anotado debe ser un número, y su valor debe ser mayor o igual al valor mínimo especificado
@DecimalMax (valor) El elemento anotado debe ser un número, y su valor debe ser menor o igual al valor máximo especificado
@Size (max =, min =) El tamaño del elemento anotado debe estar dentro del rango especificado.
@Digits (entero, fracción) El elemento anotado debe ser un número y su valor debe estar dentro de un rango aceptable.
@Past El elemento anotado debe ser una fecha pasada
@Future El elemento anotado debe ser una fecha futura
@Pattern (regex =, flag =) El elemento anotado debe cumplir con la expresión regular especificada
Validador de hibernado restricción adjunta
@Notblank (mensaje =) Verifique que la cadena no sea nula y debe ser mayor que 0
@Email El elemento anotado debe ser una dirección de correo electrónico
@Length (min =, max =) El tamaño de la cadena anotada debe estar dentro del rango especificado.
@Notempty La cadena comentada no debe ser vacía
@Range (min =, max =, mensaje =) El elemento anotado debe estar dentro del rango apropiado
Efectos y ventajas
Veamos el efecto final primero:
Public Class UserEntity {@Password Private String contraseña; @Email Correo electrónico de cadena privada;}Lo anterior utiliza dos anotaciones personalizadas para verificar la contraseña y el correo electrónico. La ventaja de esto es: una definición se usa en todas partes. Al modificar las reglas de verificación, solo necesita modificar las anotaciones. Si lo personaliza, use la etiqueta proporcionada por Hibernate:
@Pattern (regexp = "...") Correo electrónico de cadena privada;
Si de repente necesita modificar la regla de verificación REGEXP después de escribir muchas clases, la carga de trabajo será mucho mayor en este momento.
lograr
Primero, introduzca la dependencia de validación de hibernación y agregue:
<
La validación de Hibernate es una implementación de referencia de JSR, así que úsela para la verificación de frijoles.
Personalizar una anotación de verificación se divide en tres pasos:
El primer paso es crear anotaciones:
@Target ({Method, Field, Annotation_Type, Constructor, Parameter})@retención (Runtime)@documented@restrict (validatedBy = {agealValidator.class}) public @interface Correo electrónico {String Message () predeterminado "Esto no es un format de correo electrónico válido"; /** * @return La expresión regular para coincidir */string regexp () predeterminada "[a-lza-z0-9 ._%+-]+ @[a-lza-z0-9]+//. [a-za-z] {2,4}"; Clase <?> [] Grupos () predeterminado {}; Clase <? extiende la carga útil> [] Payload () predeterminado {}; /*** Define varias anotaciones {@link size} en el mismo elemento. * * @see size */ @Target ({método, campo, annotation_type, constructor, parameter}) @retention (runtime) @documented @interface list {correo electrónico [] valor (); }} Cree anotaciones a través de la palabra clave @Interface, y cada método es un parámetro de la anotación. Por ejemplo, en el código anterior, puede usar @Email(regexp="...",message="...") así. Puede ignorar el resto, simplemente copiarlo directamente. Cabe señalar que @Constraint(validatedBy = { EmailValidator.class }) , aquí especifica la clase de verificación de la anotación y reemplaza el nombre de la clase de acuerdo con la situación real.
El segundo paso es crear una clase de verificación:
Class PublicValidator Implementa restricción Validator <Correo electrónico, string> {private String regexp; @Override public void Initialize (Correo electrónico restringeNanTation) {this.regexp = restrictIntAntAntation.regExp (); } @Override public boolean isValid (valor de cadena, contexto de restrictValidatorContext) {if (value == null) {return true;} if (value.matches (regexp)) {return true; } return false; }} Aquí, simplemente implementa ConstraintValidator<Email, String> y cree un validador. El método Initialize obtiene el valor anotado REGEXP, y se verifica el método ISVALID. Si cumple con la expresión regular, devuelve verdadero, de lo contrario devuelve falso.
Cabe señalar que cuando el valor está vacío, es decir, cuando el objeto de verificación no se inicializa, las reglas de verificación correspondientes deben escribirse, de lo contrario se informará un error. En el código anterior, lo que se escribe es:
if (value == null) {return true;}Es decir, cuando el objeto de verificación está vacío, devuelve el éxito.
El tercer paso es escribir el mensaje de error predeterminado. De hecho, este paso se ha realizado en el primer paso, a través del valor predeterminado, por lo que no es necesario realizar este paso.
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.