应用 @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); }