在DispacherServlet
中,HandlerAdapter
将处理请求并返回适当的ModelandView
:
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
我的问题是,如果ModelandView
为空,会发生什么?是否会呈现任何JSP?
如果没有呈现JSP,那么该页面不应该是空白或错误,因为Spring不知道要呈现什么?令人惊讶的是,我发现情况并非如此,并且正在呈现页面。
答案 0 :(得分:1)
我检查了源代码,并且在处理程序不返回视图或视图名称的情况下有一个特殊的接口RequestToViewNameTranslator
。默认实现是DefaultRequestToViewNameTranslator
。
这背后的原因可能是在根据请求呈现视图时允许“约定优于配置”。
更新:只有在您返回空ModelAndView
时,上述陈述才属实。对于null
,请求处理不应继续=>因此空白页面。如果你没有遇到这种行为,那就会发生一些奇怪的事情。