Customize spring validation error

后端 未结 2 1012
礼貌的吻别
礼貌的吻别 2020-12-08 04:54

I want customize the spring validation error for

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

but I\'m unable to do it. Wh

相关标签:
2条回答
  • 2020-12-08 05:07

    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
    
    0 讨论(0)
  • 2020-12-08 05:12

    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.

    0 讨论(0)
提交回复
热议问题