Отправьте ответ JSP вместе с кодом состояния в Spring REST
Я хочу отправить страницу с ошибкой jsp вместе с кодом статуса HTTP. Я попробовал приведенный ниже код, но он показывает только строку, а не страницу index.jsp:
@ExceptionHandler(Exception.class)
public ResponseEntity handleException(HttpServletRequest req, Exception e)
{
return new ResponseEntity("index.jsp",HttpStatus.NOT_FOUND);
}
Может кто-нибудь объяснить, как это можно сделать?
РЕДАКТИРОВАТЬ: Я попробовал подход modelandview, но вместо 404 в качестве кода состояния он отображает 200 код состояния OK.
1 ответ
ResponseEntity
всегда будет возвращать Object
, В твоем случае String
,
ResponseEntity("index.jsp",HttpStatus.NOT_FOUND);
Для загрузки конкретной страницы JSP вы можете использовать ModelAndView
, Вы также можете передать дополнительную информацию в ModelView, что может быть удобно.
@ExceptionHandler(Exception.class)
public ModelAndView handleError(HttpServletRequest req, Exception ex) {
ModelAndView mav = new ModelAndView();
mav.addObject("url", req.getRequestURL()); // Can read this in JSP by getting url
mav.setViewName("index"); // calls index.jsp
return mav;
}
Изменить 1:
mav.setStatus(HttpStatus.NOT_FOUND);