Spring @ExceptionHandler 重定向传参

如果用@ExceptionHandler来处理异常,那么在重定向传参的过程中,无法直接使用RedirectAttribute,例如:
@ExceptionHandler(MyRuntimeException.class)
public String myRuntimeException(MyRuntimeException e, RedirectAttributes redirectAttrs){//does not work
    redirectAttrs.addFlashAttribute("error", e);
    return "redirect:someView";
}

会得到如下异常:

java.lang.IllegalStateException: No suitable resolver for argument [1] type=org.springframework.web.servlet.mvc.support.RedirectAttributes]

这里可以用 

 FlashMap outputFlashMap = RequestContextUtils.getOutputFlashMap(request);

来获取model后填入参数
另外文档中提到

a FlashMap instance (never null within a DispatcherServlet request)

所以大多数时候不必判断是否为空。