Je veux personnaliser l'erreur de validation du ressort pour
@NotNull
@Length(max = 80)
private String email;
mais je suis incapable de le faire. Quelles sont les étapes à suivre?
La algorithme d'interpolation de messages par défaut JSR 303 } vous permet de personnaliser les messages en fournissant un groupe de ressources nommé ValidationMessages. Créez un fichier ValidationMessages.properties
dans le chemin de classe contenant:
javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE
Cela modifie le message par défaut pour la contrainte @Size
. Vous devez donc utiliser la contrainte @Size
au lieu de la contrainte @Length
spécifique à Hibernate.
Au lieu de modifier le message par défaut pour toutes les contraintes, vous pouvez modifier le message pour une instance de contrainte spécifique. Définissez l'attribut message
sur la contrainte:
@NotNull(message = "{email.notnull}")
private String email;
Et ajoutez le message au fichier ValidationMessages.properties
:
email.notnull=E-mail address is required
Au printemps, je suppose que vous voulez dire Spring MVC.
De la référence ci-dessous http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html
Voici -
Vous créez une classe de validation -
public class UserValidator implements Validator {
public boolean supports(Class candidate) {
return User.class.isAssignableFrom(candidate);
}
public void validate(Object obj, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required.");
}
}
Mettez dans n'importe quel texte de validation que vous voulez dans le champ ci-dessus.
Dans le JSP, vous aurez besoin de la balise suivante -
<tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td>
<!-- Show errors for firstName field -->
<td><form:errors path="firstName" /></td>
</tr>
De cette façon, toute erreur de validation pour firstName
sera imprimée.