Contraintes standard pour la validation de bean
Consultez cette section pour obtenir des informations sur les contraintes standard disponibles dans l'API Bean Validation.
L'API de validation de bean (Bean Validation API) est bâtie autour de contraintes qui sont principalement exprimées par l'intermédiaire d'annotations. Ces contraintes sont ajoutées à une classe, un champ ou une méthode d'un composant EJB (Enterprise JavaBeans). La valeur de l'élément annoté est vérifiée par rapport à la contrainte.
L'utilisateur peut employer les contraintes standard (telles que définies par la spécification officielle) ou définir ses propres contraintes. Plusieurs annotations standard sont disponibles dans le package javax.validation.constraints. Elles servent à créer des définitions de contraintes à base d'expressions régulières et sont également utilisées pour composer des contraintes.
Le tableau suivant répertorie les contraintes et décrit leur utilisation.
Contrainte | Utilisation |
---|---|
@Null | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur Null. Cette contrainte accepte tout type. |
@NotNull | Indique que la propriété de configuration comportant cette annotation ne doit pas avoir une valeur Null. Autrement dit, la propriété est obligatoire. Cette contrainte accepte tout type. |
@AssertTrue | Indique que la propriété de configuration comportant cette annotation doit être true. Les types de valeur admis sont boolean et Boolean. Les éléments Null sont considérés comme valides. |
@AssertFalse | Indique que la propriété de configuration comportant cette annotation doit être false. Les types de valeur admis sont boolean et Boolean. Les éléments Null sont considérés comme valides. |
@Min | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur supérieure ou égale au minimum spécifié. Les types de valeur admis sont BigDecimal, BigInteger, byte, short, int, long et leurs classes d'encapsulation respectives. Les éléments Null sont considérés comme valides. |
@Max | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur inférieure ou égale au maximum spécifié. Les types de valeur admis sont BigDecimal, BigInteger, byte, short, int, long et leurs classes d'encapsulation respectives. Les éléments Null sont considérés comme valides. |
@DecimalMin | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur supérieure ou égale au minimum spécifié. Les types de valeur admis sont BigDecimal, BigInteger, String, byte, short, int, long et leurs classes d'encapsulation respectives. Les éléments Null sont considérés comme valides. |
@DecimalMax | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur inférieure ou égale au maximum spécifié. Les types de valeur admis sont BigDecimal, BigInteger, String, byte, short, int, long et leurs classes d'encapsulation respectives. Les éléments Null sont considérés comme valides. |
@Size | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur comprise entre les limites spécifiées (incluses). Les types de valeur admis sont String (l'évaluation porte sur la longueur de la chaîne), Collection (l'évaluation porte sur la taille de la collection) Map (l'évaluation porte sur la taille de la mappe), Array (l'évaluation porte sur la longueur du tableau). Les éléments Null sont considérés comme valides. |
@Digits | Indique que la propriété de configuration comportant cette annotation doit avoir une valeur comprise dans la plage indiquée. Les types de valeur admis sont BigDecimal, BigInteger, String, byte, short, int, long et leurs classes d'encapsulation respectives. Les éléments Null sont considérés comme valides. |
@Past | Indique que la propriété de configuration comportant cette annotation doit avoir pour valeur une date située dans le passé. Now est défini comme la date/heure courante, selon la machine virtuelle. Le calendrier (basé sur le fuseau horaire courant et l'environnement local courant) est utilisé si la valeur à comparer est du type Calendar. Les types de valeur admis sont java.util.Date et java.util.Calendar. Les éléments Null sont considérés comme valides. |
@Future | Indique que la propriété de configuration comportant cette annotation doit avoir pour valeur une date située dans le futur. Now est défini comme la date/heure courante, selon la machine virtuelle. Le calendrier (basé sur le fuseau horaire courant et l'environnement local courant) est utilisé si la valeur à comparer est du type Calendar. Les types de valeur admis sont java.util.Date et java.util.Calendar. Les éléments Null sont considérés comme valides. |
@Pattern | Indique que la propriété de configuration comportant cette annotation doit concorder avec l'expression régulière qui suit. L'expression régulière obéit aux conventions Java™, telles que définies dans java.util.regex.Pattern. Le type de valeur admis est String. Les éléments Null sont considérés comme valides. |