我在 spring boot 应用程序中有一个 Controller ,它使用 Hibernate Validator 验证输入。每当我调用 rest 端点时,它都会正确验证,但我的 Controller 建议没有捕捉到它来自定义消息。我们只得到带有空负载的 404 代码。
@RestController
public class Controller {
@RequestMapping(method = RequestMethod.POST, path = RestPaths.LOAD_DATA)
public void loadCostCenterData(@RequestBody @Valid ClientDto dto) {
}
}
@RestControllerAdvice
public class WickesGlobalExceptionMapper extends ResponseEntityExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity handleOtherUnexpectedException(Exception ex, WebRequest request) {
}
}
最佳答案
这是一个使用 ModelView 而不是 ResponseEntity 的有效 ControllerAdvise:
@ControllerAdvice
public class WickesGlobalExceptionMapper {
@ExceptionHandler(IllegalArgumentException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ModelAndView handleInvalidArgument(IllegalArgumentException ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setView(new MappingJackson2JsonView());
modelAndView.addObject("errorMessage", format("{0}", errorMessage));
return modelAndView;
}
}
关于java - spring mvc 验证异常不由 ControllerAdvice 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654390/