Comment empêcher un utilisateur d'entrer des valeurs numériques dans un champ de type Entier avec l'aide d'annotations?
J'ai besoin pour empêcher un utilisateur d'entrer des valeurs numériques dans une jsp champ.En cas d'échec, il doit donner le message correspondant.C'est ma déclaration actuelle:
@NotNull
@Column(value="userId")
private Long userId;
J'ai besoin de savoir ce que plusieurs annotations dois-je ajouter, pour obtenir mon résultat souhaité sans changer de type de données du champ.
Vous devez vous connecter pour publier un commentaire.
Hibernate
@Range - Vérifier si la valeur est comprise entre min et max
Exemple
@Pattern - Vérifier si la propriété correspondent à l'expression régulière donnée un match drapeau
@Pattern(regex="regexp", flag=) ou @Motifs( {@Pattern(...)} )
Exemple
Printemps
@RegExp - Vérifier si la propriété correspondent à l'expression régulière donnée un match drapeau
Exemple
@Pattern
:The annotated {@code CharSequence} must match the specified regular expression.
Il est inutile surLong
.Integer
ouLong
champ ne correspond pas à une expression régulière.Ce n'est pas quelque chose qui pourrait être fait sur le niveau de validation.
Lorsque vous entrez quelque chose dans un formulaire et que vous validez le formulaire, le navigateur envoie une requête HTTP avec votre
<input>
champs sérialisé et envoyé en tant que paramètres de la requête. Printemps, puis, selon le type de données de votre bean domaine, tente de convertir à partir d'unString
paramètre de la requête de la valeur à unLong
type. Si il ne peut pas le faire parce que la Chaîne n'est pas unLong
, il lève des exceptions (NumberFormatException
) et de répondre avec un code erreur 400.Vous pouvez valider ce sur l' (HTML5) côté client avec
Ou de l'utilisation
si vous ne voulez pas des nombres décimaux.
@Valid
ici.