Spring DispatcherServlet视图解析

在上一篇文章中,我们了解了Springa DispatcherServlet是如何进行请求分发的。接下来,将介绍spring是如何找到需要的页面的。

Spring DispatcherServlet视图解析_第1张图片

下面是更好理解的一张图。

Spring DispatcherServlet视图解析_第2张图片

        在SpringMVC中,控制器可返回三种类型的值,分别是:

        (1) 字符串

        (2) ModelAndView对象

        (3) json数组

1、当返回值为字符串时,通过ModelAndView构造函数,传入返回的字符串,构造出一个ModelAndView对象。然后进行页面渲染

这时,返回的字符串加上配置文件中配置的前缀和后缀,就是该实图在项目中的路径。

2、当返回值为ModelAndView时,这是规范的视图名称,此时不需要进行对象的封装。

3、当控制器被@ResponseBody修饰的时候,返回值可以是json数组的形式。此时的返回值会在response被返回之前加到response的body部分。

        实际上,通过源代码的追踪,可以看到在进行视图解析的时候,无论是返回字符串还是ModelAndView对象,后台都是按照ModelAndView对象进行处理的。当指定名称的视图不存在的时候,IDEA就会弹出错误提示如图的错误。

Spring DispatcherServlet视图解析_第3张图片

关于视图渲染的详细过程,请查看文章结尾的参考博文。

参考博文:https://blog.csdn.net/xcl522/article/details/41356405

 

你可能感兴趣的:(java)