自定义spring验证错误

自定义spring验证错误,spring,validation,customization,bean-validation,Spring,Validation,Customization,Bean Validation,我想自定义的弹簧验证错误 @NotNull @Length(max = 80) private String email; 但是我做不到。 接下来的步骤是什么?我假设您指的是Spring MVC 从下面的参考 给你- 您可以创建一个验证器类- public class UserValidator implements Validator { public boolean supports(Class candidate) { return

我想自定义的弹簧验证错误

    @NotNull
    @Length(max = 80)
    private String email; 
但是我做不到。
接下来的步骤是什么?

我假设您指的是Spring MVC

从下面的参考

给你-

您可以创建一个验证器类-

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.");
    }
}
在上述字段中输入所需的任何验证文本

在JSP中,您将需要以下标记-

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

名字:
这样,将打印
firstName
的任何验证错误。

允许您通过提供名为ValidationMessages的资源包来自定义消息。在类路径中创建一个
ValidationMessages.properties
文件,其中包含:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE
这将更改
@Size
约束的默认消息,因此您应该使用
@Size
约束,而不是特定于Hibernate的
@Length
约束

您可以更改特定约束实例的消息,而不是更改所有约束的默认消息。在约束上设置
消息
属性:

@NotNull(message = "{email.notnull}")
private String email;
并将消息添加到
ValidationMessages.properties
文件:

email.notnull=E-mail address is required

我正在使用注释验证,比如@NotNull。那么,springjar中的消息存储在哪里呢?我想我需要编辑them@apache-fan I down投票给你的答案,因为OP说的是现代JSR303风格的验证,而不是旧的spring特定的验证。我认为这里值得添加的边栏是,你可以得到大小的最小值和最大值,比如
javax.validation.constraints.size.message=Length必须介于{min}和{max}字符
如何使用此属性文件进行国际化?ValidationMessages.properties?@Chin Huang,如果{min/max]的值可能会动态变化怎么办?是否可以指定为消息参数{最小值为{provided_at_runtime}},其中provided_at_runtime不引用注释属性我如何将颜色更改为红色?@Gonçalo,是的,似乎就是这样。检查