Contraintes intégrées dans la validation des haricots
@Null L'élément annoté doit être nul
@Notnull L'élément annoté ne doit pas être nul
@AssertTrue L'élément annoté doit être vrai
@Assertfalse L'élément annoté doit être faux
@Min (valeur) L'élément annoté doit être un nombre et sa valeur doit être supérieure ou égale à la valeur minimale spécifiée.
@Max (valeur) L'élément annoté doit être un nombre et sa valeur doit être inférieure ou égale à la valeur maximale spécifiée.
@Decimalmin (valeur) L'élément annoté doit être un nombre, et sa valeur doit être supérieure ou égale à la valeur minimale spécifiée
@Decimalmax (valeur) L'élément annoté doit être un nombre, et sa valeur doit être inférieure ou égale à la valeur maximale spécifiée
@Size (max =, min =) La taille de l'élément annoté doit être dans la plage spécifiée.
@Digits (entier, fraction) L'élément annoté doit être un nombre et sa valeur doit être dans une plage acceptable.
@Past L'élément annoté doit être une date passée
@Future L'élément annoté doit être une date future
@Pattern (regex =, drap =) L'élément annoté doit se conformer à l'expression régulière spécifiée
VALIDATEUR HIBERNATE CONTRAINTION COITE
@Notblank (message =) Vérifiez que la chaîne n'est pas nulle et doit être supérieure à 0
@Email L'élément annoté doit être une adresse e-mail
@Length (min =, max =) La taille de la chaîne annotée doit être dans la plage spécifiée.
@Notempty La chaîne commentée doit être non vide
@Range (min =, max =, message =) L'élément annoté doit être dans la plage appropriée
Effets et avantages
Voyons d'abord l'effet final:
Public Class Userentity {@Password Private String Password; @EMail Private String Email;}Ce qui précède utilise deux annotations personnalisées pour vérifier le mot de passe et le courrier électronique. L'avantage est: une définition est utilisée partout. Lors de la modification des règles de vérification, il vous suffit de modifier les annotations. Si vous le personnalisez, utilisez la balise fournie par Hibernate:
@Pattern (regexp = "...") Email de chaîne privées;
Si vous avez soudainement besoin de modifier la règle de vérification Regexp après avoir écrit de nombreuses classes, la charge de travail sera beaucoup plus grande pour le moment.
accomplir
Tout d'abord, introduisez la dépendance de validation Hibernate et ajoutez:
<! - Hibernate Validator -> <! - Hibernate Verification Framework -> <dependency> <proupId> org.hibernate </rombandid> <ArtifACTID> Hibernate-Validator </ ArfactId> <Dersion> 5.2.2.Final </ Version> </Dependance>
La validation Hibernate est une implémentation de référence de JSR, alors utilisez-le pour la vérification des bean.
La personnalisation d'une annotation de vérification est divisée en trois étapes:
La première étape consiste à créer des annotations:
@Target ({méthode, champ, annotation_type, constructeur, paramètre}) @ rétention (runtime) @ documented @ contraint (validedBy = {emailValidator.class}) public @Interface Email {String Message () par défaut "Ce n'est pas un format de messagerie valide"; / ** * @return l'expression régulière pour correspondre * / string regexp () par défaut "[a-za-z0-9 ._% + -] + @ [a-za-z0-9] + //. [a-za-z] {2,4}"; Classe <?> [] Groupes () default {}; Classe <? étend la charge utile> [] Payload () par défaut {}; / ** * définit plusieurs annotations {@link size} sur le même élément. * * @see size * / @target ({méthode, champ, annotation_type, constructeur, paramètre}) @retention (runtime) @Documented @Interface List {email [] value (); }} Créez des annotations via le mot clé @Interface, et chaque méthode est un paramètre de l'annotation. Par exemple, dans le code ci-dessus, vous pouvez utiliser @Email(regexp="...",message="...") comme ceci. Vous pouvez ignorer le reste, il suffit de le copier directement. Il convient de noter que @Constraint(validatedBy = { EmailValidator.class }) , spécifie ici la classe de vérification de l'annotation et remplace le nom de classe en fonction de la situation réelle.
La deuxième étape consiste à créer une classe de vérification:
classe publique EmailValidator implémente CONSTRAINTVALIDATOR <EMAIL, String> {private String regexp; @Override public void initialize (e-mail contraintannotation) {this.regexp = contraintAnnotation.regexp (); } @Override public boolean isvalid (string value, contraintValidatorContext context) {if (value == null) {return true;} if (value.matches (regexp)) {return true; } return false; }} Ici, implémentez simplement ConstraintValidator<Email, String> et créez un validateur. La méthode Initialize obtient la valeur regexp annotée et la méthode isvalid est vérifiée. S'il répond à l'expression régulière, il renvoie vrai, sinon il renvoie faux.
Il convient de noter que lorsque la valeur est vide, c'est-à-dire que lorsque l'objet de vérification n'est pas initialisé, les règles de vérification correspondantes doivent être écrites, sinon une erreur sera signalée. Dans le code ci-dessus, ce qui est écrit est:
if (valeur == null) {return true;}Autrement dit, lorsque l'objet de vérification est vide, il renvoie le succès.
La troisième étape consiste à écrire le message d'erreur par défaut. En fait, cette étape a été effectuée dans la première étape, par défaut, donc cette étape n'a pas besoin d'être effectuée.
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.