使用自定义注释验证手机号码时显示多条消息

时间:2018-05-01 11:27:18

标签: java spring

我使用下面的自定义注释来验证联系号码

@Documented
@Constraint(validatedBy = ContactNumberValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ContactNumberConstraint {
    String message() default "Invalid phone number";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

public class ContactNumberValidator implements ConstraintValidator<ContactNumberConstraint, String> {

    @Override
    public void initialize(ContactNumberConstraint contactNumber) {
    }

    @Override
    public boolean isValid(String contactField, ConstraintValidatorContext cxt) {
        return contactField != null && contactField.matches("[0-9]+") && (contactField.length() > 8) && (contactField.length() < 14);
    }

}

在本课程中,我们添加了验证逻辑。但在一个条件下,我们已经在单行中引入了3个条件。如果超过3条件满足则显示 &#34;电话号码无效&#34;

如果移动设备无效,则每次只显示一条消息。 但是,如果我想在以下步骤中验证移动设备并显示不同的不同消息。

我希望以多种方式将上述单个条件分开,以便更具用户特性。

  1. 如果手机号码字段为空,则应显示&#34;手机号码字段不为空&#34;
  2. 如果手机号码以字符串形式传递,则应显示&#34;手机号码应为字符串&#34;
  3. 如果手机号码长度小于9则应显示&#34;手机号码超过9位&#34;

0 个答案:

没有答案