首页 课程 师资 教程 报名

Thymeleaf教程入门学习

  • 2021-06-11 14:42:25
  • 1161次 星辉

Thymeleaf是一个用于Web和独立Java环境的模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本。能轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎(比如FreeMaker)相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用(更加方便前后端分离,比如方便类似VUE前端设计页面),抛弃JSP吧。

Thymeleaf 3.0是一个完全彻底重构的模板引擎(官网原文:Thymeleaf 3.0 builds around a completely new template processing engine),极大的减少内存占用和提升性能和并发性,避免v2.1版因大量的输出标记的集合产生的资源占用。

Thymeleaf 3.0放弃了大多数面向DOM的处理机制,变成了一个基于事件的模板处理器,它通过处理模板标记或文本并立即生成其输出,甚至在新事件之前响应模板解析器/缓存事件。Thymeleaf是Spring Boot官方的推荐使用模板。

3.0版的模型解析事件模型:

thymeleaf教程

模板类型

允许您处理六种模板,有:

-HTML

-XML

-TEXT

-JAVASCRIPT

-CSS

-RAW

标准表达式语法

简单表达式

变量表达式:${...}

选择变量表达式:*{...}

消息表达式:#{...}

URL表达式: {...}

代码段表达式:~{...}

变量表达式 Variable expressions: ${...}

变量表达式在Spring中就是模型属性

例如:${user.name}

定义在属性中:<span th:text="${book.author.name}">

遍历:<li th:each="book:${books}">

<!-- springmvc 保存了一个 model 对象: departments -->

<!-- 获取所有 departments -->
<p th:text="${departments}"></p>
<!-- 获取 departments 的第一个元素 -->
<p th:text="${departments[0]}"></p>
<!-- 获取第一个 department 对象的 name 属性 -->
<p th:text="${departments[0].name}"></p>
<!-- 也可以用 ['name'] 来获取第一个 department 对象的 name 属性 -->
<p th:text="${departments[0]['name']}"></p>
<!-- 甚至可以调用方法! -->
<p th:text="${departments[0].getId()}"></p>
<p th:text="${departments[0]['name'].substring(0, 1)}"></p>

选择变量表达式 Selection expressions: *{...}

选择表达式就像变量表达式,它们用于先前选择的对象上执行,而不是在整个上下文变量映射中执行。

只要是没有选择的对象,选择表达式与变量表达式的语法是完全一样的。那什么是选择的对象呢?是一个:th:object对象属性绑定的对象。

例如:*{customer.name}

展示book变量的属性:

<div th:object="${book}">
<span th:text="*{title}">...</span>
</div>
<div th:object="document[2]">
<!-- 以下三种方式在这种情况下是等价的 -->
<p th:text="${#object.id}"></p>
<p th:text="*{id}"></p>
<p th:text="${document[2].id}"></p>
</div>

消息表达式 Message expressions: #{...}

消息表达式用于展示静态资源的内容,比如i18n属性配置文件

例如:#{main.title}

一个完整的例子:

<table>
...
<th th:text="#{header.address.city}">...</th>
<th th:text="#{header.address.country}">...</th>
...
</table>
<!-- 还可以结合变量表达式使用  -->
#{${config.welcomeKey}}

比如新建/WEB-INF/templates/home.properties,home.welcome的内容:home.welcome=this messages is from home.properties!

使用消息表达式:&lt;p th:text="#{home.welcome}"&gt;This text will not be show!&lt;/p&gt;

一个更深入的例子:

结合消息表达式、变量表达式、预处理表达式

#{home.__${sel.code}__}

看上去很乱是吧,实际上可以分解成3步:

1、先计算变量${sel.code},假如值是welcome

2、__的含义是需要预处理的变量值,那么就变成#{home.welcome}

3、计算最终结果,简单吧

以上就是星辉小编介绍的"Thymeleaf教程入门学习",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交