在Spring REST中发送jsp响应以及状态代码

时间:2018-07-02 14:11:34

标签: java spring rest spring-restcontroller

我想发送一个jsp错误页面以及HTTP状态代码。我尝试了以下代码,但仅显示了字符串,而不显示index.jsp页面:

    @ExceptionHandler(Exception.class)
public ResponseEntity handleException(HttpServletRequest req, Exception e)
{

    return new ResponseEntity("index.jsp",HttpStatus.NOT_FOUND);

}

有人可以解释一下该怎么做吗?

编辑:我尝试了modelandview方法,但是它显示的是200 OK状态代码,而不是404作为状态代码。

1 个答案:

答案 0 :(得分: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);