好的,所以我在一个我们正在使用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/

10-08 21:54