我想发送一个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作为状态代码。
答案 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);