Отправьте ответ 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);
Другие вопросы по тегам