好的,所以我在一个我们正在使用spring的项目上,据我所知,什么时候由SimpleMappingExceptionResolver引发并处理了运行时异常,然后当调用我们注册的拦截器的postHandle方法时,它带有一个空模型,并且视图。
我对Spring MVC是如何挂在一起的了解不多,但我认为SimpleMappingExceptionResolver将异常类型映射到ModelAndView。并且该ModelAndView对象将可用于拦截器将事物填充到模型中。如果不是这种情况,请随时告诉我为什么,如果是,为什么我在拦截器中看到空的ModelAndView?
干杯,克里斯。
最佳答案
我不确定是否有相同的大小写,但是对于我的情况,当系统由于ModelAndView为null而无法解析View时,我想显示一个通知“未找到404请求”的页面。最初,我尝试使用SimpleMappingExceptionResolver并在地图中放置“404找不到请求”的视图名(viewNames称为“/ 404NotFound”)。但是我找不到正确的例外。
最后,我要解决的问题是通过修改web.xml并输入以下内容:
<error-page>
<error-code>404</error-code>
<location>/404NotFound</location>
</error-page>
并且由于我们不需要任何控制器来处理404NotFound(只需按原样呈现即可),因此将这段代码放在mvc的应用程序上下文中。
<mvc:view-controller path="/404NotFound"/>
关于spring - 从SimpleMappingExceptionResolver映射异常时,Interceptor中的ModelAndView为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11507448/