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 () { } });