1.使用@valid注解在controller的方法中的字段加上
2.
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Constraint(validatedBy = PasswordValidatorClass.class)
public @interface PasswordValidator {
int min() default 0;
int max() default 2147483647;
String message() default "密码不存在";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
3.
public class PasswordValidatorClass implements ConstraintValidator<PasswordValidator,String> {
private int min = 0;
private int max = 2147483647;
private static final Pattern mobile_pattern = Pattern.compile("(?!^\\d+$)(?!^[a-z]+$)(?!^[A-Z]+$)(?!^[!!@#$%&*_+-=]+$).{8,32}");
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if(value == null || "".equals(value)){
return false;
}
int length = value.length();
if(length < min || length > max){
return false;
}
Matcher m = mobile_pattern.matcher(value);
return m.matches();
}
@Override
public void initialize(PasswordValidator constraintAnnotation) {
min = constraintAnnotation.min();
max = constraintAnnotation.max();
}