【发布时间】:2021-03-18 06:01:28
【问题描述】:
我正在使用弹簧靴。
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
对于同一个属性,我给出了两个注释,一个用于空检查,另一个用于空检查。
@NotNull(message = "{email.notnull}")
@NotEmpty(message = "{email.notempty}")
private String email;
我正在从属性文件加载错误消息。
当我将电子邮件设为 empty 时,我只收到来自 email.notempty 的错误消息,但是当我将电子邮件设为 null 时,email.notnull 和 email.notempty 将显示这两条错误消息, 请问我犯了什么错误。
当我给出 null 时,我应该只能看到 null 错误。
【问题讨论】:
-
因为 javax.validation 将为给定字段执行所有验证器。所以两个验证器都会被执行。放弃
@NotNull,离开@NotEmpty。 -
受@NotEmpty 约束的字段(例如,CharSequence、Collection、Map 或 Array)不得为 null,并且其大小/长度必须大于零。
标签: java spring spring-boot validation