一、Thymeleaf 模板介绍

Spring Boot 推荐使用Thymeleaf 来代替传统开发中的JSP,那么什么是Thymeleaf 模板引擎呢?下面就来简单的介绍一下。

Thymeleaf 官方地址链接:https://www.thymeleaf.org/

1.1什么是Thymeleaf

Thymeleaf 是一款用于渲染XML/XHTML/HTML5 内容的模板引擎。类似JSP,Velocity,FreeMaker 等,它也可以轻易的与Spring MVC 等Web 框架进行集成作为Web 应用的模板引擎。

1.2为什么要使用Thymeleaf

以往我们使用JSP 页面开发的时候,需要开启服务器才能在浏览器访问到对应的视图资源,Thymeleaf 能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用,原因是Thymeleaf 支持HTML 原型开发,也就是说Thymeleaf 在前后端分离上做的更好,这也是Thymeleaf 最大的一个特点。

Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

1.3Thymeleaf 常用的语法规则

我们在进行后端开发的时候,之所以会选择JSP,是因为JSP 中提供了很多实用的标签,比如判断、取值、遍历等。作为Spring Boot 推荐使用的Thymeleaf 当然也提供了很多实用的标签。

变量
<!-- ${today} 中的值,会覆盖标签中的值 -->
<p>Today is: <span th:text="${today}">这里显示日期</span>.</p>

假设today 的值为2018年3月36日,那么渲染结果为:<p>Today is: 2018年3月36日.</p>。可见Thymeleaf 的基本变量和JSP 一样,都使用${.}表示获取变量的值。

URL
<!-- 绝对路径 -->
<a th:href="@{http://www.thymeleaf.org}">Thymeleaf</a>
<!-- 相对路径 @{...}表达式中可以通过{orderId}访问Context中的orderId变量
-->
<a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a>

URL 在Web 应用模板中占据着十分重要的地位,需要特别注意的是Thymeleaf 对于URL 的处理是通过语法@{...} 来处理的。Thymeleaf支持绝对路径URL 也支持相对路径的URL。

循环
    <table><tr><th>NAME</th><th>PRICE</th><th>IN STOCK</th></tr><tr th:each="prod : ${prods}"><td th:text="${prod.name}">Onions</td><td th:text="${prod.price}">2.41</td><td th:text="${prod.inStock}? #{true} : #{false}">yes</td></tr></table>

可以看到,需要在被循环渲染的元素(这里是)中加入th:each标签,其中th:each="prod : ${prods}"意味着对集合变量prods进行遍历,将当前集合中的值赋给prod

判断
<a th:if="${myself=='yes'}" > Hi </a>
<a th:unless=${session.user != null} th:href="@{/login}" >Login</a>

Thymeleaf 中使用th:ifth:unless属性进行条件判断,上面的例子中,<a>标签只有在th:if中条件成立时才显示。th:unlessth:if恰好相反,只有表达式中的条件不成立,才会显示其内容。

PS

上面主要介绍一些比较常用的标签,想要学习更多的标签,可以去查看对应的官方文档。

Thymeleaf3.0 官方使用手册链接:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html

二、在Spring Boot 中使用Thymeleaf

Thymeleaf 在Spring Boot 中的使用规则

Spring Boot 实现自动配置的时候已经对Thymeleaf 进行了支持,关于其中的一些规则,我们可以在ThymeleafProperties中进行查看,如下:

ThymeleafProperties类中已经对Thymeleaf 进行了前缀与后缀设置,所以我们只要在classpath:/templates/目录下创建×××.html,Thymeleaf 就可以帮我们渲染页面了。

在Spring Boot 引入Thymeleaf 的starter
        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
编写控制器代码
    @RequestMapping("/hello")public String thymeleafTest(Map<String, String> map){map.put("username", "Jas");return "index";}
classpath:/templates/下新建index.html
<!DOCTYPE html>
<!-- 引入thymeleaf 的名称空间 -->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h2>Hello <span th:text="${username}">这里用于显示用户名</span></h2>
</body>
</html>
在浏览器进行测试

通过上面的结果我们可以看出${username}中的值覆盖了原来的值,进行数据展示的页面不再是JSP而是HTML,所以在不启动服务器的情况下页面也是可以进行访问的,在服务器启动情况下完成页面渲染,更好的支持前后端分离,因此Thymeleaf 完全是可以代替JSP 的。

三、总结

这篇博文简单的写了一些关于Thymeleaf 模板引擎相关的知识,如果想要了解更多关于Thymeleaf 模板引擎方面的知识,可以在官方文档中深入了解。希望本篇博文能够为你提供一些帮助。

参考资料:
https://www.tianmaying.com/tutorial/using-thymeleaf
https://zhuanlan.zhihu.com/p/24965387?refer=dreawer

Spring Boot集成Thymeleaf模板引擎相关推荐

  1. js文件中怎么使用thymeleaf标签_007、Spring Boot集成Thymeleaf模板引擎

    1. Thymeleaf 介绍 Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎. Thymeleaf 的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏 ...

  2. Spring Boot整合Thymeleaf模板引擎

    转载自 Spring Boot整合Thymeleaf模板引擎 什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMa ...

  3. 九、SpringBoot集成Thymeleaf模板引擎

    Thymeleaf咋读!??? 呵呵,是不是一脸懵逼...哥用我的大学四级英文知识告诉你吧:[θaimlif]. 啥玩意?不会音标?...那你就这样叫它吧:"赛母李府",大部分中国 ...

  4. <12>springboot集成thymeleaf模板引擎

    创建一个springboot工程,导入以下依赖 <dependencies><!--springboot框架web组件依赖--><dependency><gr ...

  5. java beetl模板引擎_Spring Boot集成beetl模板引擎 个人总结

    1. Spring boot快速集成beetl模板引擎 查看官方文档:http://ibeetl.com/guide/#beetl 可参看官方文档 4.6. Spring Boot集成 增加beetl ...

  6. spring boot使用thymeleaf模板配置和freem

    整体步骤: (1)            在pom.xml中引入thymeleaf; (2)            如何关闭thymeleaf缓存 (3)            编写模板文件.html ...

  7. Spring Boot 集成SnakerFlow流程引擎,简介、功能列表、详细解读、扩展点分析

    文章目录 简介 功能列表 流程定义 任务参与者 参与者设置 动态添加.删除参与者 组支持 详细解读 Spring Boot集成 表定义 表详细说明: 字段详细说明: 常见操作 常规API 综合查询 模 ...

  8. Spring Boot中使用模板引擎引用资源

    目录 概念 演示 概念 在Spring Boot中可以通过模板引擎去引用资源,如果项目改变了,也是可以跑的,不需要自己手动一个个去改链接. 演示 运行截图如下: 但修改properties文件: se ...

  9. Spring Boot集成thymeleaf异步刷新页面

    现在比较流行前后端分离开发,但在有些业务场景下模板引擎也用的不少.本文介绍thymeleaf页面的局部更新,Spring Boot采用的是2.0.4,先来看代码. IndexController.ja ...

最新文章

  1. mongodb3.0的权限认证问题
  2. 目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
  3. 【Python基础】科学计算库Scipy简易入门
  4. 手把手教你做一辆mini平衡自行车!
  5. 电脑启动后黑屏只有鼠标_电脑加装固态硬盘后出现黑屏或蓝屏解决方案
  6. mac pycharm安装设置_Mac系统Python、PyCharm安装及使用方法详解
  7. wemall微信商城云平台 快速创建您的微信商城
  8. EMA算法的C#实现
  9. 矩阵在Matlab中应用规则,1.3 MATLAB中的矩阵运算免费阅读_详解MATLAB在最优化计算中的应用免费全文_百度阅读...
  10. Dart基础第10篇:类 静态成员 操作符 类的继承
  11. cc2530设计性实验代码四
  12. 小米路由器 charles无法抓包
  13. 实用:AE/PR 视频交换格式哪家强?
  14. 基于银河麒麟 V10 系统安装和卸载 DM8 数据库
  15. java共享充电宝管理系统演示录像2021计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  16. Docker安装mysql 报错 InnoDB: Table flags are 0 in the data dictionary but the flags in file
  17. bindiff 太慢,两小时没结果
  18. Twister: 迭代MapReduce计算框架
  19. UVA 524素数环
  20. TSC 标签打印机,使用TSPL指令,前端 jsp 调用打印二维码和文本标签的案例

热门文章

  1. Tampermonkey油猴插件各种浏览器下载教程【chrome、firefox、Edge、360、QQ、Safari等】
  2. jpa报错No property found for column ‘first_time‘ mapped to field ‘first_time‘
  3. spring boot实现导出数据到excel
  4. Python——Python连接MySQL数据库
  5. 设计模式(Design Pattern)
  6. android地图路径绘制,android:利用svg的path路径+canvas 开发自定义地图控件
  7. 问到ConcurrentHashMap不要再提Segment了
  8. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】
  9. 给thinkphp3.2用上composer
  10. IOS学习之蓝牙4.0