J'utilise la validation du bean JSR303 pour vérifier la saisie du formulaire.Comment définir l'ordre de vérification pour la validation du bean JSR303
@NotBlank
@Size(min = 4, max = 30)
private String name;
@NotBlank
@Size(max = 100)
@Email
private String mail;
lorsque le nom puis = '' et email = '', le @NotBlank, @Size au nom, @NotBlank, @Size, @Email au courrier sera vérifié.
Je veux définir l'ordre de vérification, lorsque la commande précédente est invalide, la suivante n'est pas vérifiée, par exemple.
@NotBlank(order = 1)
@Size(min = 4, max = 30, order = 2)
private String name;
(ci-dessus n'est pas supportée JSR303)
est-il possible de le mettre en œuvre pour l'utilisation JSR303? (je pense que l'annotation personnalisée sera faite, mais je n'aime pas ajouter une annotation personnalisée pour chaque propriété)
Et je considère également le groupe de validation et la séquence de groupe, mais je pense qu'il y a une différence pour mon besoin .
@NotBlank(groups = First.class)
@Size(min = 4, max = 30, groups = Second.class)
private String name;
@NotBlank(groups = First.class)
@Size(max = 100, groups = Second.class)
@Email(groups = Third.class)
private String mail;
Lorsque le nom est vide et que le courrier est "abc". Seul le @NotBlank au nom, et @NotBlank au mail sera vérifié par JSR303, Parce que le @NotBlank au nom est invalide, donc les deuxième et troisième groupes ne sont pas vérifiés.
Mais mon besoin est @NotBlank au nom et @NotBlank, @Size, @Email at mail doit être vérifié. Parce que le @NotBlank au nom n'est pas valide, le @Size at name n'est pas vérifié, et le @ NotBlank, @ Size at mail est valide, donc le @Email at mail est vérifié. Peut-être, le pseudo-code ci-dessous sera clair pour décrire mon exigence.
// retrieves all fields and check one by one.
for (Field field : fields) {
List annotations = getJsr303Annotations(field);
// retrieves all annotations on field and check one by one.
for (Annotation annotation : annotations) {
CheckResult result = check(annotation, field);
if (result.isValid()) {
continue;
} else {
errors.add(result);
break;
}
}
}
Existe-t-il un bon moyen de mettre en œuvre mon exigence par JSR303?
Très merci pour votre réponse, la séquence de groupe ne répond pas à mes besoins, je modifie ma question. – eckelcn