参数校验JSR303

什么是 JSR303

JSR 是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

常见的有:

  • Java Servlet 3.0 (JSR 315)

  • Java Date与Time API ( JSR 310)

  • Bean Validation 1.0 (JSR 303)

 

Validator + BindingResult获取校验信息

该方法将不会抛出异常 【类似异常捕获】

  1. 通过 BindingResult 获取校验信息返回

/**
     * BindingResult 获取参数的校验信息
     *
     * 参数校验失败的 code 10086
     */
    @RequestMapping("addUserInfo")
    public R addUserInfo(@Validated User user, BindingResult result){
//        result.hasErrors() 有没有存在校验失败的情况
        if (result.hasErrors()) {
//            获取所有参数校验的异常信息 封装R对象中响应
            //        getFieldErrors() 获取所有校验失败的属性
            Map map = new HashMap();
            List<FieldError> fieldErrors = result.getFieldErrors();
            for (FieldError fieldError : fieldErrors) {
//            fieldError.getDefaultMessage() 获取参数校验的信息
                map.put(fieldError.getField(),fieldError.getDefaultMessage());
            }

            return R.error(10086,"参数校验失败").put("data",map);
        }

        return R.ok();
    }

分组校验

......

原文地址:https://www.cnblogs.com/huahualove/p/13917223.html