昵称被喵掉了

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1 创建自定义注解(使用注解接口@interface)

 1 package com.ssm.controller.validated.annotation;
 2 
 3 import com.ssm.controller.validated.annotation.impl.PhoneVali;
 4 
 5 import javax.validation.Constraint;
 6 import javax.validation.Payload;
 7 import javax.validation.constraints.NotNull;
 8 import java.lang.annotation.*;
 9 
10 @Documented
11 @Constraint(validatedBy = PhoneVali.class)//注解实现类
12 @Target(ElementType.FIELD)//注解应用类型(在属性域上应用)
13 @Retention(RetentionPolicy.RUNTIME)//表示保留至运行时,可以被反射读取
14 @NotNull
15 public @interface Phone {
16     String message() default "电话号码格式不正确";//错误提示信息
17     Class<?>[] groups() default {};//分组
18     Class<? extends Payload>[] payload() default {};//这个暂时不清楚作用
19 }

 

2 编写注解实现类

 1 package com.ssm.controller.validated.annotation.impl;
 2 
 3 import com.ssm.controller.validated.annotation.Phone;
 4 
 5 import javax.validation.ConstraintValidator;
 6 import javax.validation.ConstraintValidatorContext;
 7 
 8 public class PhoneVali implements ConstraintValidator<Phone, String> {
 9     @Override
10     public void initialize(Phone phone) {
11     }
12 
13     @Override
14     public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
15         if (s == null) {
16             return false;
17         } else if(s.matches("^(13\\d|14[579]|15[^4\\D]|17[^49\\D]|18\\d)\\d{8}$")){
18             return true;
19         }else {
20             return false;
21         }
22     }
23 }

 

继承ConstraintValidator实现初始化方法(initialize)和验证方法(isValid)

3 与其他验证注解一般使用

1 @Phone(groups = {AddUserValid.class})
2 private String userPhone;

 

posted on 2018-02-23 14:12  昵称被喵掉了  阅读(1417)  评论(0)    收藏  举报