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?
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
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.