实体不为空验证消息

时间:2017-09-27 10:00:21

标签: java spring-boot

目前我的应用中有2个实体,如下所示。两者都不可为空。

@Column(name = "name", nullable = false, unique = true)
@NotNull
@NotBlank
private String name;

@Column(name = "ldap", nullable = false)
@NotNull
@NotBlank
private String ldap;

当我使用数据发布时,无论是名称还是带有null的ldap字段,我都希望使用字段名称显示特定的非空消息。请告诉我,如何实现这一目标?

例如,

{
 "name" : "check"
}

然后,错误消息应为ldap field should not be empty

2 个答案:

答案 0 :(得分:0)

我认为你应该使用@NotNull注释:

@Column(name = "name", unique = true)
@NotNull(message = "ldap field should not be null"
@NotBlank(message = "ldap field should not be empty"
private String ldap;

我通常使用@NotEmpty代替@NotBlank - 它也有消息属性。

答案 1 :(得分:0)

您需要执行几个步骤来实现自定义消息:

  @Column
    @NotNull(message = "error.title.notnull")
    @Size(min = 1, max = 30, message = "error.title.size")
    private String title;
    @Column
    @Size(max = 100, message = "error.description.size")
    private String description;

因此,下一步是通过向SpringValidationApplication(主类)添加一个来创建MessageSource bean。

例如:

@Bean(name = "messageSource")
public ReloadableResourceBundleMessageSource messageSource() {
  ReloadableResourceBundleMessageSource messageBundle = new ReloadableResourceBundleMessageSource();
  messageBundle.setBasename("classpath:messages/messages");
  messageBundle.setDefaultEncoding("UTF-8");
  return messageBundle;
}

这告诉Spring查看messages的文件夹,查找以messages开头的文件。

接下来在src / main / resources / messages中添加一个名为messages.properties的文件:

error.title.notnull=The title is a required field
error.title.size=The title should be between 1 and 30 characters
error.description.size=The description should be limited to 100 characters.

详情可在此link

上找到