it-swarm.com.de

Passen Sie den Validierungsfehler für den Frühling an

Ich möchte den Federvalidierungsfehler für anpassen

    @NotNull
    @Length(max = 80)
    private String email; 

aber ich kann es nicht. (.____.) Welches sind die folgenden Schritte?

23

Mit dem JSR 303-Standardalgorithmus für die Interpolation von Nachrichten können Sie Nachrichten anpassen, indem Sie ein Ressourcenpaket mit dem Namen ValidationMessages angeben. Erstellen Sie eine ValidationMessages.properties-Datei im Klassenpfad, die Folgendes enthält:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE

Dadurch wird die Standardnachricht für die @Size-Einschränkung geändert. Sie sollten daher die @Size-Einschränkung anstelle der Hibernat-spezifischen @Length-Einschränkung verwenden.

Anstatt die Standardnachricht für alle Einschränkungen zu ändern, können Sie die Nachricht für eine bestimmte Einschränkungsinstanz ändern. Legen Sie das message-Attribut für die Einschränkung fest:

@NotNull(message = "{email.notnull}")
private String email;

Und füge die Nachricht der ValidationMessages.properties-Datei hinzu:

email.notnull=E-mail address is required
52
Chin Huang

Mit Spring gehe ich davon aus, dass Sie Spring MVC meinen.

Aus dem folgenden Verweis http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

Bitte schön -

Sie erstellen eine Validator-Klasse -

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.");
    }
}

Geben Sie in das Feld oben einen beliebigen Bestätigungstext ein.

In der JSP benötigen Sie das folgende Tag -

<tr>
    <td>First Name:</td>
    <td><form:input path="firstName" /></td>
    <!-- Show errors for firstName field -->
    <td><form:errors path="firstName" /></td>
</tr>

Auf diese Weise wird jeder Validierungsfehler für firstName gedruckt.

0
Pushkar