Отправьте ответ jsp вместе с кодом состояния в Spring REST - PullRequest
0 голосов
/ 02 июля 2018

Я хочу отправить страницу с ошибкой 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 Ответ

0 голосов
/ 02 июля 2018

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);
...