编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

006-SpringMVC-理清数据模型、视图、视图解析器的脉络

wxchong 2024-06-27 01:39:15 开源技术 17 ℃ 0 评论

本篇文章会有大量的类结构图来说明关系

1,数据模型用于存储业务处理之后,返回给用户的数据。

大致的流程如下:

1,控制器将数据装载数据模型中

2,将视图名称转发给视图解析器

3,视图解析器解析视图名,得到最终的视图

4,将数据模型的数据渲染到视图中,最终呈现视图

数据模型的结构

所以,你经常会看到我们在程序中写Model或者ModelMap,其实最终本质使用都是BindingAwareModelMap,来调试验证:

2,视图

视图的分类:

视图分为逻辑视图和非逻辑视图

非逻辑视图,不会经过视图解析器定位视图,而是直接将数据模型渲染即可,比如处理JSON的MappingJackson2JsonView

逻辑视图,则会通过视图解析器解析,并确认最终的视图,比如处理jstl的InternalResourceView

我们来看视图类的定义

View这个接口下面有很多的实现类,比如处理jstl的JstlView,处理Freemarker的FreeMarkerView,Json的

MappingJackson2JsonView,等等还有很多。

3,视图解析器

视图解析器的定义:

什么时候用上视图解析器:

向上述的非逻辑视图MappingJackson2JsonView,就不需要配置视图解析器,会最终将数据模型转换为JSON数据,并响应给用户。

而InternalResourceView,则需要配置视图解析器,比如我们之前在003-SpringMVC快速上手文章中提到的InternalResourceViewResolver

同样,也会有很多对应的视图解析器,比如FreeMarkerViewResolver

所以,到此为此,大家是否对SpringMVC的模型数据,视图,视图解析器三者的关系及结构有了比较清晰的认识?

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表