Я регистрирую DateTimeFormatterRegistrar
в своем классе реализует WebMvcConfigurer
следующим образом:
@Override
public void addFormatters(FormatterRegistry registry) {
DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
registrar.setUseIsoFormat(true);
registrar.registerFormatters(registry);
}
В контроллере остальных я пытаюсь проанализировать параметры клиента GET
для объекта:
@GetMapping("/api/url/path")
public APIResponse getPersonAttendList(@Valid SampleVO vo){}
SampleVO
включает поле LocalDateTime time
. Если клиент предложил неверный формат time
param, привязка будет неудачной. Сервер вернет 500 и напечатает некоторый журнал, например:
>ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] 175 - Servlet.service() for
servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed;
nested exception is java.time.format.DateTimeParseException
У меня вопрос, как перехватить это исключение и вернуть 400 клиенту ? Кажется, ControllerAdvice
не работает.