私の問題は、未処理の例外をすべてキャプチャする @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>