Spr*_*ser 4 spring hibernate spring-mvc spring-data spring-boot
我的实体类用@NotNull一个字段的hibernate 注释.我正在捕获异常@ExceptionHelper.我的问题是我想访问无效字段的值,以便我可以将其添加到记录器中.
这是ExceptionHandler:
@ExceptionHandler({ MethodArgumentNotValidException .class })
@ResponseBody
public ResponseEntity<?> handleInvalidMethodArgException(MethodArgumentNotValidException de) {
List<FieldError> bindingResult = de.getBindingResult().getFieldErrors();
LOGGER.debug(String.format("Start : %s : handleDataexception()", this
.getClass().getSimpleName()));
for(FieldError fieldError: bindingResult){
LOGGER.debug("Invalid {} value submitted for {}",
fieldError.getRejectedValue(), fieldError.getField());
}
ErrorMsg = new ErrorMsg(errorCode, errorMessage);
return new ResponseEntity<>(errMsg, HttpStatus.NOT_FOUND);
}
Run Code Online (Sandbox Code Playgroud)
我在控制器中添加@Validated了@RequestBody.
MethodArgumentNotValidException有一个getBindingResult方法,BindingResult如果失败与验证相关,或者null如果没有,则返回.所以,你可以调用getFieldErrors该方法返回List的FieldError秒.每个FieldError都有一个getRejectedValue给你相应字段的无效值:
ex.getBindingResult().getFieldErrors().forEach(fieldError -> {
LOGGER.debug("Invalid {} value submitted for {}",
fieldError.getRejectedValue(), fieldError.getField());
});
Run Code Online (Sandbox Code Playgroud)
ex是一个实例MethodArgumentNotValidException.
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |