I want customize the spring validation error for
@NotNull
@Length(max = 80)
private String email;
but I\'m unable to do it. Wh
The JSR 303 default message interpolation algorithm allows you to customize messages by supplying a resource bundle named ValidationMessages. Create a ValidationMessages.properties
file in the classpath containing:
javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE
This changes the default message for the @Size
constraint, so you should use the @Size
constraint instead of the Hibernate-specific @Length
constraint.
Instead of changing the default message for all constraints, you can change the message for a specific constraint instance. Set the message
attribute on the constraint:
@NotNull(message = "{email.notnull}")
private String email;
And add the message to the ValidationMessages.properties
file:
email.notnull=E-mail address is required
By Spring I am assuming you mean Spring MVC.
From the below reference http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html
Here you go -
You create a validator class -
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.");
}
}
Put in any validation text you want in the above field.
In the JSP you will need the following tag -
<tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td>
<!-- Show errors for firstName field -->
<td><form:errors path="firstName" /></td>
</tr>
This way any validation error for firstName
will be printed.