视图解析器

处理请求的方法执行完成后,最终会返回一个 ​​ModelAndView​​​ 对象, 对于那些返回 ​​String​​​,​​View​​​ 或 ​​ModeMap​​​ 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个 ​​ModelAndView​​ 对象, 它包含了逻辑名和模型对象的视图, Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View)最终的视图可以是 JSP

视图

视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户,视图对象由视图解析器负责实例化,在 ​​org.springframework.web.servlet​​​ 包中定义了一个高度抽象的 ​​View​​ 接口

SpringMVC-视图解析器_SpringMVC

常见实现类

InternalResourceView

将 JSP 或其它资源封装成一个视图, 是 ​​InternalResourceViewResoler​​ 默认使用的实现类

源码分析

当你发送一个请求时,首先会执行 ​​DispatcherServlet​

SpringMVC-视图解析器_视图解析器_02

SpringMVC-视图解析器_视图解析器_03

内部的流程如下,首先获取 ​​mapping​​ 映射

SpringMVC-视图解析器_数据_04

在获取 ​​适配器​

SpringMVC-视图解析器_spring_05

调用处理器, 执行映射方法, 返回 ​​MV​

SpringMVC-视图解析器_SpringMVC_06

SpringMVC-视图解析器_数据_07

处理转发页面

SpringMVC-视图解析器_数据_08

在方法内部渲染页面

SpringMVC-视图解析器_数据_09

创建视图对象

SpringMVC-视图解析器_spring_10

调用 View 对象渲染页面

SpringMVC-视图解析器_视图解析器_11

在 render 内部解析数据

SpringMVC-视图解析器_数据_12

SpringMVC-视图解析器_数据_13

SpringMVC-视图解析器_数据_14

转发到 JSP 页面

SpringMVC-视图解析器_spring_15

然后页面就可以呈现在我们的浏览器中进行展示了

SpringMVC-视图解析器_SpringMVC_16