2

我的问题是这个问题的一个分支。

我有一个要验证的注释(比如电话注释)。我可以使用@phone 验证器来检查电话对象是否有效。我还希望能够将此验证器放在包含电话的联系信息对象上。有没有办法为一个注释使用多个验证器,以便我可以将@phone 用于我的电话对象和我的联系信息对象?


@Constraint(validatedBy = {PhoneIsValid.class, PhoneIsValid2.class})
工作吗?(想法是一个验证器处理电话对象,另一个处理联系信息对象。)

4

1 回答 1

6

同一个注解类型可以有多个验证器。正如您所提到的,您已经在@Constraint注释中定义了所有这些。

注释:

@Documented
@Target({ ElementType.ANNOTATION_TYPE, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { ValidPhonePhoneValidator.class, ValidPhoneContactValidator.class })
public @interface ValidPhone {

  String message() default "";
  Class<?>[] groups() default { };
  Class<? extends Payload>[] payload() default { };
} 

验证器1:

public class ValidPhonePhoneValidator implements ConstraintValidator<ValidPhone, Phone> { ... }

验证器2:

public class ValidPhoneContactValidator implements ConstraintValidator<ValidPhone, Contact> { ... }
于 2013-05-07T10:00:41.490 回答