BindingResult

BindingResult是用于接收前一个参数校验(validate或valid)错误信息, 前端将不再显示错误信息
statusCode == 200, 后端也不会抛出异常

如果想要跳转到错误页面, 使用@ResponseStatus指定code和reason, 或是抛出一个异常

    @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "参数请求错误")
    @ResponseBody
    @RequestMapping("/test2")
    public String test2(@Validated User user, BindingResult result) {
        //判断是否有error
        if (result.hasErrors()) {
            int errorCount = result.getErrorCount();
            log.info("异常个数=" + errorCount);
            //获取全局与属性的错误
            //result.getAllErrors();
            //只获取属性校验的错误
            for (FieldError fieldError : result.getFieldErrors()) {
                log.info("message:" + fieldError.getDefaultMessage());
            }
        }
        System.out.println(user);
        return "test2";
    }

将校验的错误信息返回到前端

    @ResponseBody
    @RequestMapping("/test4")
    public Map<String, Object> test5(@Validated User user, BindingResult result) {
        Map<String, Object> model = null;
        if (result.hasErrors()) {
            model = result.getModel();
        }
        System.out.println(user);
        return model;
    }

猜你喜欢

转载自www.cnblogs.com/kikochz/p/12819082.html