用@Valid验证实体类字段属性,因为返回信息繁琐(除了"年龄不可以为空"以外,还有三四行的英文),
在网上搜了下解决办法,照着样子用异常拦截器进行拦截转换处理
结果却是精简返回"年龄不为空",但是发现如果name和age都为空 , 测试发现只会返回"年龄不为空", 没法同时返回两个不为空的校验信息
而在没有使用异常拦截转换之前, 虽然信息繁琐,但是会准确返回 "姓名不可以为空" 和 "年龄不可以为空" 两个校验信息
(我的异常拦截返回值直接给了String, 这和网上的有点出入,不知道是不是这个原因)
可以获取多个error
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
fieldErrors.forEach(err -> {
System.out.println(err.getDefaultMessage());
});
出入是啥,代码执行是有顺序的,如果想返回两个不为空,人为处理一下,入参的时候判断就行