为什么Spring InternalResourceView没有';t抛出一个关于不存在JSP文件的异常?
当预期的JSP不存在时,SpringMVC是否打算不抛出为什么Spring InternalResourceView没有';t抛出一个关于不存在JSP文件的异常?,spring,jsp,spring-mvc,requestdispatcher,Spring,Jsp,Spring Mvc,Requestdispatcher,当预期的JSP不存在时,SpringMVC是否打算不抛出ServletException 下面的代码片段是InternalResourceView的一部分,我认为在这里应该有一个例外RequestDispatcher可能为空,因为dispatcherPath上没有文件。 具体来说,dispatcherPath看起来像/WEB-INF/jsp/v2/post/somename.jsp //获取目标资源(通常是JSP)的RequestDispatcher。 RequestDispatcher rd
ServletException
下面的代码片段是InternalResourceView
的一部分,我认为在这里应该有一个例外RequestDispatcher
可能为空,因为dispatcherPath上没有文件。具体来说,dispatcherPath看起来像
/WEB-INF/jsp/v2/post/somename.jsp
//获取目标资源(通常是JSP)的RequestDispatcher。
RequestDispatcher rd=getRequestDispatcher(requestToExpose,dispatcherPath);
if(rd==null){
抛出新的ServletException(
“无法获取[”+getUrl()的RequestDispatcher”+
“]:检查web应用程序存档中是否存在相应的文件!”);
}
是的,它是历史性的InternalResourceView
是一个UrlBasedViewResolver
基本上它所做的就是构造一个指向某个地方的URL。可能存在也可能不存在。如果需要,您可以提供自己的JstlView
子类,并实现checkResource
方法来检查它是否确实存在。然后使用此视图配置InternalResourceViewResolver
。@M.Deinum感谢您的解释。但我不认为JstlView.checkResource
是检查jsp是否存在的合适点。1.checkResource仅具有区域设置参数2。ViewResolver可能能够事先检查是否存在<例如,code>UrlBasedViewResolver.buildView。它被委托给checkResource
,因为它了解视图技术。视图解析器(至少这个)不知道这项技术。接下来的视图
扩展了WebApplicationObjectSupport
,它有一个ServletContext
,因此您可以在视图
@M.Deinum中很好地检查它,完全理解您的意思。非常感谢!是的,它是历史性的InternalResourceView
是一个UrlBasedViewResolver
基本上它所做的就是构造一个指向某个地方的URL。可能存在也可能不存在。如果需要,您可以提供自己的JstlView
子类,并实现checkResource
方法来检查它是否确实存在。然后使用此视图配置InternalResourceViewResolver
。@M.Deinum感谢您的解释。但我不认为JstlView.checkResource
是检查jsp是否存在的合适点。1.checkResource仅具有区域设置参数2。ViewResolver可能能够事先检查是否存在<例如,code>UrlBasedViewResolver.buildView。它被委托给checkResource
,因为它了解视图技术。视图解析器(至少这个)不知道这项技术。接下来的视图
扩展了WebApplicationObjectSupport
,它有一个ServletContext
,因此您可以在视图
@M.Deinum中很好地检查它,完全理解您的意思。非常感谢!