如何返回如下所示的简单文本字符串,基本上我想在浏览器中显示错误的简单文本。
我在这里处理我的错误,在这里我想这样做:
@ExceptionHandler(Exception.class)
public ModelAndView handleAllException(Exception e) {
}
问题是我必须返回一个ModelAndView。如何将简单文本返回给浏览器,不想使用任何JSP等。
只需按照以下或类似方式返回:
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
例如,这不起作用:
return new ModelAndView((View) ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()));
答案 0 :(得分:2)
来自@ExceptionHandler
documentation:
允许使用此注释注释的处理程序方法 拥有非常灵活的签名。他们可能有参数 以下类型,按任意顺序:[...] OutputStream / Writer for 生成响应的内容。这将是原始的 Servlet API公开的OutputStream / Writer。 [...]
因此,您可以定义一个类似于此的异常处理方法:
@ExceptionHandler(Exception.class)
public void handleAllException(Exception e, Writer responseWriter) {
responseWriter.write(e.getMessage());
}
显然,你可以做一些更复杂的事情来格式化错误信息,但这是基本的想法。
答案 1 :(得分:-1)
你可以这样做:
public ModelAndView handleAllException(Exception e) {
ModelAndView mav = new ModelAndView("your_jsp_name");
modelAndView.addObject("name", "Peter");
...
return mav;
}