【发布时间】:2012-07-15 11:39:53
【问题描述】:
好的,所以我在一个使用 spring 的项目中,据我所知,何时引发运行时异常并由 SimpleMappingExceptionResolver 处理,然后当我们注册的拦截器的 postHandle 方法被调用时,它带有空模型和视图。
我不太了解spring MVC如何挂在一起,但我认为SimpleMappingExceptionResolver将异常类型映射到ModelAndView。并且这个 ModelAndView 对象可用于拦截器将内容填充到模型中。如果不是这种情况,请随时告诉我为什么,如果是,为什么我在拦截器中看到 null ModelAndView?
干杯,克里斯。
【问题讨论】:
-
在成功调用 handler.handle 后调用 postHandle 方法。 postHandle 在处理程序引发异常的情况下不会被调用。在这种情况下,只有在异常解析器调用之后才会调用 afterCompletion 拦截器方法。我不知道在引发异常的情况下如何调用 postHandle。
-
另外,如果您查看 org.springframework.web.servlet.DispatcherServlet#doDispatch 源,很容易理解拦截器/解析器的工作原理
标签: spring spring-mvc exception-handling interceptor