本篇文章会有大量的类结构图来说明关系
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的模型数据,视图,视图解析器三者的关系及结构有了比较清晰的认识?
本文暂时没有评论,来添加一个吧(●'◡'●)