1.定义注解IsMobile
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy={IsMobileValidator.class})
public @interface IsMobile {
boolean required() default true;
String message() default "手机格式错误";
// TODO 不是很明白后面这两个方法
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
2.定义IsMobileValidator
public class IsMobileValidator implements ConstraintValidator<IsMobile, String>{
private boolean required = false;
@Override
public void initialize(IsMobile constraintAnnotation) {
required=constraintAnnotation.required();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if(required){
return ValidatorUtil.isMoble(value);//正则校验
}else {
if(StringUtils.isEmpty(value)){
return true;
}else{
return ValidatorUtil.isMoble(value);//正则校验
}
}
}
}
3.在对应VO上加上注解
public class LoginVO {
@NotNull
@IsMobile
private String mobile;
... ...
}
4.请求访问controller
public AjaxResult<Boolean> doLogin(@Valid LoginVO loginVo) {... ...}