Вы можете использовать @ControllerAdvice для обработки ваших исключений, Поведение по умолчанию, которое аннотированный класс @ControllerAdvice поможет всем известным контроллерам.
поэтому он будет вызываться, если у любого контроллера, у которого есть ошибка 404.
как следующее:
@ControllerAdvice
class GlobalControllerExceptionHandler {
@ResponseStatus(HttpStatus.NOT_FOUND) // 404
@ExceptionHandler(Exception.class)
public void handleNoTFound() {
// Nothing to do
}
}
и отобразить эту ошибку 404 ответа в вашем web.xml, как следующее:
<error-page>
<error-code>404</error-code>
<location>/Error404.html</location>
</error-page>
Надежда, что помогает.
Интересно. Можете ли вы указать, какой HttpStatus использовать на сайте throw (т. Е. Не скомпилировать его в класс Exception)? –
@mattb: Я думаю, что точка '@ ResponseStatus' заключается в том, что вы определяете целую группу строго типизированных, хорошо названных классов исключений, каждый со своим собственным' @ ResponseStatus'. Таким образом, вы отделите свой код контроллера от деталей кодов состояния HTTP. – skaffman
Я вижу. Довольно опрятная идея. Мне нужно начать использовать аннотации 3.0 и узнать все это добро! –