Spring Boot----@Valid
mavan
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
使用
@RequestMapping(value = "/do_login",method = RequestMethod.POST)
@ResponseBody
public Result<String> doLogin(HttpServletResponse response, @Valid LoginVo loginVo) {//加入JSR303参数校验
log.info(loginVo.toString());
String token = userService.login(response, loginVo);
return Result.success(token);
}
public class LoginVo {
@NotNull
@IsMobile //可以自己定义验证规则
private String mobile;
@NotNull
private String password;
}
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
validatedBy = {IsMobileValidator.class}
)//引进校验器
public @interface IsMobile {
boolean required() default true;//默认不能为空
String message() default "手机号码格式错误";//校验不通过输出信息
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class IsMobileValidator implements ConstraintValidator<IsMobile, String> {
private boolean required = false;
//初始化
@Override
public void initialize(IsMobile isMobile) {
required = isMobile.required();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
if (required) {
return ValidatorUtil.isMobile(value);
} else {
if (StringUtils.isEmpty(value)) {
return true;
} else {
return ValidatorUtil.isMobile(value);
}
}
}
}
public class ValidatorUtil {
//默认以1开头后面加10个数字为手机号
private static final Pattern mobile_pattern = Pattern.compile("1\\d{10}");
public static boolean isMobile(String src){
if(StringUtils.isEmpty(src)){
return false;
}
Matcher m = mobile_pattern.matcher(src);
return m.matches();
}
}
前台
$.ajax({
url: "/login/do_login",
type: "POST",
data: {
mobile: $("#mobile").val(),
password: password
},
success: function (data) {
if (data.code == 0) {
layer.msg("成功");
window.location.href = "/goods/to_list";
} else {
layer.msg(data.msg);
}
},
error: function () {
}
});

浙公网安备 33010602011771号