自定义弹簧验证错误

Rob*_*tis 29 validation customization spring bean-validation

我想自定义弹簧验证错误

    @NotNull
    @Length(max = 80)
    private String email; 
Run Code Online (Sandbox Code Playgroud)

但我无法做到.要遵循的步骤是什么?

Chi*_*ang 61

JSR 303的默认邮件插补算法,您可以通过提供命名ValidationMessages资源包定制的消息.ValidationMessages.properties在classpath中创建一个包含以下内容的文件:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE
Run Code Online (Sandbox Code Playgroud)

这会更改@Size约束的默认消息,因此您应该使用@Size约束而不是Hibernate特定的@Length约束.

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

@NotNull(message = "{email.notnull}")
private String email;
Run Code Online (Sandbox Code Playgroud)

并将消息添加到ValidationMessages.properties文件中:

email.notnull=E-mail address is required
Run Code Online (Sandbox Code Playgroud)

  • 我认为这里添加的一个有价值的侧边栏是你可以获得大小的最小值和最大值,如`javax.validation.constraints.Size.message =长度必须介于{min}和{max}个字符之间 (10认同)
  • 我如何使用此属性文件进行国际化?ValidationMessages_ <locale> .properties? (5认同)