validation


validationjar2.0.1包下定义的校验常数包含email、是否为null,等校验,但是没有手机号。
在登录时需要验证用户的手机号格式并不为空,密码长度且不为空。 这种操作一般会在前端先进行验证,后端也要进行二次验证。
为了减少业务层的if-else逻辑,那么这里将使用jsr303注解式校验器。

@Email注解示例


  1. @Documented
  2. @Constraint(
  3. validatedBy = {}
  4. )
  5. @Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
  6. @Retention(RetentionPolicy.RUNTIME)
  7. @ReportAsSingleViolation
  8. @Pattern(
  9. regexp = ""
  10. )
  11. public @interface Email {
  12. String message() default "{org.hibernate.validator.constraints.Email.message}";
  13. Class<?>[] groups() default {};
  14. Class<? extends Payload>[] payload() default {};
  15. @OverridesAttribute(
  16. constraint = Pattern.class,
  17. name = "regexp"
  18. )
  19. String regexp() default ".*";
  20. @OverridesAttribute(
  21. constraint = Pattern.class,
  22. name = "flags"
  23. )
  24. Flag[] flags() default {};
  25. @Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
  26. @Retention(RetentionPolicy.RUNTIME)
  27. @Documented
  28. public @interface List {
  29. Email[] value();
  30. }
  31. }

模仿email写mobile