仅在传递其他约束时才验证自定义约束
Validate custom constraint only if other constraint is passed
我有一个基本的自定义验证设置,如下所示:
@NotNullOrEmpty(message="{err.msg.required}", fieldName="Email")
@ValidEmail(message="{err.msg.validEmail}", fieldName="Email")
private String email;
但是,如果电子邮件为空,则两者都会触发,因为空电子邮件当然不是有效电子邮件。
如何在空时只触发 @NotNullOrEmpty
,在非空时只触发 @ValidEmail
?
或者可以点赞
@Annotation1
@Annotation2 //trigger only if value has passed @Annotation1
我的想法是如果电子邮件为空,则将我的 ValidEmailValidator.isValid()
编辑为 return true,但是如果我想在将来验证空电子邮件怎么办?
由所有标准注释实现的标准方法是,如果电子邮件为 null 或为空,则将其视为有效。因此,如果您有必填的电子邮件,则可以使用 NotEmpty 和 Email 对该字段进行注释。如果您有不需要的电子邮件,您只需使用电子邮件对其进行注释。
作为参考,这里是标准 EmailValidator 的第一行代码:
if ( value == null || value.length() == 0 ) {
return true;
}
我有一个基本的自定义验证设置,如下所示:
@NotNullOrEmpty(message="{err.msg.required}", fieldName="Email")
@ValidEmail(message="{err.msg.validEmail}", fieldName="Email")
private String email;
但是,如果电子邮件为空,则两者都会触发,因为空电子邮件当然不是有效电子邮件。
如何在空时只触发 @NotNullOrEmpty
,在非空时只触发 @ValidEmail
?
或者可以点赞
@Annotation1
@Annotation2 //trigger only if value has passed @Annotation1
我的想法是如果电子邮件为空,则将我的 ValidEmailValidator.isValid()
编辑为 return true,但是如果我想在将来验证空电子邮件怎么办?
由所有标准注释实现的标准方法是,如果电子邮件为 null 或为空,则将其视为有效。因此,如果您有必填的电子邮件,则可以使用 NotEmpty 和 Email 对该字段进行注释。如果您有不需要的电子邮件,您只需使用电子邮件对其进行注释。
作为参考,这里是标准 EmailValidator 的第一行代码:
if ( value == null || value.length() == 0 ) {
return true;
}