仅在传递其他约束时验证自定义约束

时间:2015-06-28 10:40:54

标签: java-ee bean-validation hibernate-validator custom-validators

我有一个基本的自定义验证设置如下:

@NotNullOrEmpty(message="{err.msg.required}", fieldName="Email")
@ValidEmail(message="{err.msg.validEmail}", fieldName="Email")
private String email;

但是,如果电子邮件为空,则会触发BOTH,因为空邮件不是有效的电子邮件。

如果@NotNullOrEmpty为空,则如何仅触发@ValidEmail,如果非空,则仅触发@Annotation1 @Annotation2 //trigger only if value has passed @Annotation1

或者是否可能喜欢

ValidEmailValidator.isValid()

我想到的是编辑我的.pola { margin-left: auto; margin-right: auto; background-position: center center; background-image: url("../img/frames/frame_01.png"); background-size: contain; background-repeat: no-repeat; } 以在电子邮件为空时返回true,但如果我想在将来验证空电子邮件该怎么办?

1 个答案:

答案 0 :(得分:2)

通过所有标准注释实现的标准方法是,如果电子邮件为空或空,则将其视为有效。因此,如果您有必需的电子邮件,则使用NotEmpty和Email对该字段进行注释。如果您有不需要的电子邮件,则只需使用电子邮件进行注释即可。

作为参考,以下是标准EmailValidator的第一行代码:

if ( value == null || value.length() == 0 ) {
    return true;
}