springboot中Thymeleaf的使用
程序员文章站
2024-02-29 17:44:04
...
1、什么是Thymeleaf
-
Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎。
-
Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以正确显示在浏览器中的HTML,也可以作为静态原型工作,从而在开发团队中进行更强大的协作。
随着Spring框架的模块,与您最喜欢的工具的集成,以及插入自己的功能的能力,Thymeleaf是现代HTML5 JVM Web开发的理想选择,尽管它可以做的更多。 -
Thymeleaf就是jsp的高端升级版。
2、什么情况适合使用Thymeleaf
-
Thymeleaf显然是一个开发页面的技术,现在各种前端技术层出不穷,比如现在主流的Vue、React、AngularJS等。很多人可能会要问,这个Thymeleaf相对于这些前端框架到底有啥优势。
其实,Thymeleaf跟那些前端框架根本不是一个类型的东西,也没有啥可比性。 -
Thymeleaf和老牌的jsp属于非前后分离的思路来开发的。后端通过数据渲染html的模板,渲染后模板就是个完整的html页面,将页面返回给请求方。
-
主流的前端框架是基于前后端分离的思路来开发的,前端页面通过ajax来调用后端的rest接口来获取数据,再通过js进行渲染页面(不管什么前端技术其实都是对js进行了封装,js依然是底层核心)。
3、使用前后分离主要有下面几个好处
- 因为每次请求服务器获取的数据从整个页面变成了仅仅是核心数据,加载速度明显提升。
- 前端人员和后端人员可以互相独立开发,最后在通过接口联调即可。以前是不分前端工程师、后端工程师的,现在前后分离后,才出现了这样的分类。而且现在前端技术也越来越先进。前后分离以后可以方便两条技术路线的人员各自钻研自己的技术。
- 前端页面脱离后端服务器后,可以和后端分开部署。这时就可以对前端页面的服务器进行一些专门的网络优化进一步提高访问速度。
- 后端只需要一套rest接口就可以同时服务于电脑页面、IOS客户端、安卓客户端。甚至现在还有些前端技术可以直接把前端页面打包成IOS、安卓的客户端。
说了这么多前后分离的好处,你可能就要问了,那我们为什么还要用那个看起来那么low的模板引擎呢?
- 为了速度。
a. 前后分离方式,前端页面通过ajax来调用后端的rest接口来获取数据,再通过js进行渲染页面。获取数据和通过js渲染页面的代码,很多时候比页面本身要多的多,而且通过js来操作dom进行渲染,稍微复杂些的页面往往就会把渲染逻辑搞的错综复杂。相信从jsp时代一路走到现在的老程序员都深知工作量是成倍的往上翻。
b. 固然刚才列举了前后分离的种种好处,但这些好处大多数都是集中在app开发上,其他某些场景下这些好处并不明显。最典型的一个场景就是管理后台。管理后台往往对页面的花哨性要求不高,并发量也不大,而且功能往往还不少。这种场景下,前后分离技术上导致的工作量大幅度增加,人员上分离导致额外的联调成本都成了不少的负担。Thymeleaf作为模板引擎这时候优势就非常大。只需要在html原型的页面上稍微加几个标签,即可完成渲染。而且加上的标签并不影响原型页面直接通过html打开。
c. 总结一下,Thymeleaf是一个供后端人员使用的,为快速开发页面而生的Java模板引擎。
4、如何在Springboot中引入Thymeleaf
5、.快速入门
6、设置属性
7、表达式
8、迭代器
- 我们在渲染页面时,经常需要对一个list进行循环处理,最典型的场景就是使用表格展示多条数据。这时,就需要使用到thymeleaf的迭代器th:each。
<tr th:each="user : ${users}">
<td th:text="${user.id}">id</td>
<td th:text="${user.username}">用户名</td>
</tr>
``
**9. 条件语句`**
**10、工具类**
[Thymeleaf工具类官方文档:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#expression-utility-objects](https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#expression-utility-objects)