Я использую @ExceptionHandler
в приложении Spring mvc 3 для обработки исключений, и я написал контроллер следующим образом:
@Controller
public class ExceptionsController {
private static final Logger logger = Logger.getLogger(ExceptionsController.class);
@ExceptionHandler(IOException.class)
public ModelAndView handleIOException(IOException ex) {
logger.info("handleIOException - Catching: " + ex.getClass().getSimpleName());
return errorModelAndView(ex);
}
private ModelAndView errorModelAndView(Exception ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error");
modelAndView.addObject("name", ex.getClass().getSimpleName());
return modelAndView;
}
@ExceptionHandler({NullPointerException.class, NoSuchRequestHandlingMethodException.class})
public ModelAndView handleExceptionArray(Exception ex) {
logger.info("handleExceptionArray - Catching: " + ex.getClass().getSimpleName());
return errorModelAndView(ex);
}
@ExceptionHandler(DataFormatException.class)
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "My Response Status Change....!!")
public ModelAndView handleDataFormatException(DataFormatException ex, HttpServletResponse response) {
logger.info("Handlng DataFormatException - Catching: " + ex.getClass().getSimpleName());
return errorModelAndView(ex);
}
Для этого я настроил XML-файл весеннего сервлета с объявлением bean-компонента AnnotationMethodHandlerExceptionResolver
Я хочу, чтобы, когда пользователь изменял URL-адрес, исключение PageNotFound должно обрабатываться @ExceptionHandler
.
Мой сценарий в браузере, когда пользователь вручную изменяет URL-адрес, который является неправильным, в этом случае сервер отображает страницу 404, вместо этого я хочу показать страницу ошибки, как она появляется в Facebook