Multiple Regex @ Motif pour 1 champ?
J'ai été tenté d'appliquer de multiples @Pattern des annotations à un seul champ:
@Pattern(regexp = "(?=.*[0-9])", message = "Password must contain one digit.")
@Pattern(regexp = "(?=.*[a-z])", message = "Password must contain one lowercase letter.")
@Pattern(regexp = "(?=.*[A-Z])", message = "Password must contain one uppercase letter.")
@Pattern(regexp = "(?=\S+$)", message = "Password must contain no whitespace.")
private String password;
Cependant, je ne peux pas faire cela. Je veux des messages individuels par violé regex contrainte sur le champ mot de passe. Est-ce possible?
Mon alternative est l'utilisation de JSF 2.0 f:validatorRegex balises.
source d'informationauteur Chris Harris
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser l'intérieur
@List
annotation de@Pattern
:Gunnar solution ne fonctionne pas pour moi...".+' dans son regexp semblent avoir disparu.
Cependant, je suis en utilisant Michal est patternList et il fonctionne comme un charme pour moi. (Jouer 2.3.x /Ebean-ORM)
Vous voudrez peut-être regarder dans la contrainte de composition. Vous serait de construire une annotation par mot de passe de contrainte composé à partir de l' @Schéma d'annotation, puis enfin de construire un composé d'annotation à l'aide de la précédemment défini quatre. Cela nécessiterait pas de supplément de code java.
http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html_single/#validator-customconstraints-compound
Autrement, construire (avec accompagnement de code java) une annotation personnalisée appelé @PasswordValidator.
J'ai tendance à aimer composé des validateurs, car il fait l'objet de la validation des annotations clair sur leur but, au lieu d'avoir de nombreux disjoints annotations.
J'ai modifié Gunnar réponse et écrire composite et de contrainte, cela semble maintenant fonctionner correctement sur 4 tests unitaires: