Spring MVC之视图解析

时间:2022-12-11 08:07:13

什么是视图解析

我计划完成 50 到 100 篇有关 Spring 的文章,这是第十七篇。如果您对Spring和编程感兴趣,欢迎订阅我的头条号,也欢迎关注我的个人独立IT博客:谈谈IT,网址就是tantanit.com哦。

浏览器只识别静态的html文件。MVC中,controller并不直接生成html文件,而只负责为model填充数据,然后将model转给视图(view)。并且controller只知道视图的逻辑名称,并不负责视图的内容。这样,就将转发请求和解析视图这两件事在Spring MVC中进行了解耦。controller和view之间的耦合只在于对model中数据的定义。

由于controller只提供了视图的逻辑名称,Spring要知道怎样渲染视图,就需要视图解析器的帮助。视图解析器定义了视图模板文件所在的目录和后缀,和视图逻辑名称拼接之后,就构成了视图完整的路径。

Spring MVC中定义的视图解析器接口和视图接口如下:

Spring MVC之视图解析

ViewResolver和View接口

ViewResolver解析视图名称,并返回View。View则根据model(数据)以及request渲染出response。只要实现了代码中的两个方法,就可以解析视图了。然而在Spring MVC中,一般不需要再这样做,因为Spring MVC为各种常用视图框架提供了视图解析器的实现。

Spring MVC之视图解析

Spring MVC提供的视图解析器

其中,InternalResourceViewResolver一般用来解析JSP,TilesViewResolver用来解析Apache Tile,FreeMarkerViewResolver用来解析FreeMarker,ThymeleafViewResolver用来解析Thymeleaf。ResourceBundleViewResolver一般用来解析属性文件。在一个项目中,可以同时使用多个视图解析器,解析不同类型的文件。

创建JSP视图

使用InternalResourceViewResolver解析jsp模板文件很简单,只需要配置前缀和后缀。

Spring MVC之视图解析

InternalResourceViewResolver

经过这样配置后,home将会解析到/WEB-INF/views/home.jsp

小结

本文讲解了视图解析,以及如何创建JSP视图,将在后续文章中讲解如何解析其它视图模板。

如果您喜欢这篇文章,可以收藏和分享给更多朋友哦,在此拜谢orz!收藏和分享后,在PC上看IT文章,观感更好。您可以通过toutiao.com访问今日头条,也可以直接访问我的独立博客tantanit.com。这篇文章的地址是http://tantanit.com/spring-mvc-view-resolution

本文为头条号作者发布,不代表今日头条立场。