我的问题是我想创建一个 @ExceptionHandler 方法来捕获所有未处理的异常。一旦被捕获,我想重定向到当前页面,而不是指定一个单独的页面来显示错误。
基本上我如何获取somemethod返回的someview的值并在下面的方法unhandledExceptionHandler中动态设置它。
@ExceptionHandler(Exception.class)
protected ModelAndView unhandledExceptionHandler(Exception ex){
System.out.println("unhandle exception here!!!");
ModelAndView mv = new ModelAndView();
mv.setViewName("currentview");
mv.addObject("UNHANDLED_ERROR", "UNHANDLED ERROR. PLEASE CONTACT SUPPORT. "+ex.getMessage());
return mv;
}
@RequestMapping(value = "/somepage", method = RequestMethod.GET)
public String somemethod(HttpSession session) throws Exception {
String abc = null;
abc.length();
return "someview";
}
所以在 JSP 中,我可以将这个错误消息重新呈现到当前页面中。
<c:if test="${not empty UNHANDLED_ERROR}">
<div class="messageError"> ${UNHANDLED_ERROR}</div>
</c:if>