使用 @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);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。