关于后端:使用Validated报错-Validation-failed-for-argument-0

3次阅读

共计 849 个字符,预计需要花费 3 分钟才能阅读完成。

应用 @Validated 加 @NotBlank 校验 字符串不能为空报错 Validation failed for argument [0] …..,应该是多个入参导致的

解决办法:

1 版本问题,查看版本是否抵触或者过低

2 在入参减少减少 BindingResult bindingResult

public ApiResult<Object> logon(@Validated(APPLoginGroups.class) @RequestBody StUsers stUsers, BindingResult bindingResult, @RequestParam String code)

在办法中减少代码

        if (bindingResult.hasErrors()) {return ApiResult.fail(bindingResult.getFieldError().getDefaultMessage());
          }

2 的简化版

当然因为 Validation 报错是固定的一个类,能够应用全局异样进行捕捉同一返回

public ApiResult<Object> logon(@Validated(APPLoginGroups.class) @RequestBody StUsers stUsers, @RequestParam String code)

全局异样捕捉

    /**
     * @Validated 自定义验证异样, 同一返回
     */
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {//log.error(e.getMessage(), e);
        String message = e.getBindingResult().getFieldError().getDefaultMessage();
        return ApiResult.fail(message);
    }
正文完
 0