web-dev-qa-db-fra.com

Personnaliser l'erreur de validation du ressort

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?

23
Roberto de Santis

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
52
Chin Huang

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.

0
Pushkar