模板引擎是以业务逻辑层和表现层分离为目的的,将规定格式的模板代码转换为业务数据的算法实现。
它可以是一个过程代码、一个类,甚至是一个类库。不同的模板引擎其功用也不尽相同,但其基本原理都差不多。
常见的模板引擎有:jsp、freemarker、velocity、themleaf
Thymeleaf是什么呢?它是用来开发Web和独立环境项目的服务器端的Java模版引擎
• Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和 Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的 自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法 即可。
动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏 览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是 由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示 方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态 地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动 态显示。
开箱即用:它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展 和创建自定义的方言。
多方言支持:Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的 可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
与SpringBoot完美整合:SpringBoot提供了Thymeleaf的默认配置,并且 为Thymeleaf设置了视图解析器,我们可以像以前操作jsp一样来操作Thymeleaf。代 码几乎没有任何区别,就是在模板语法上有区别。
Thymeleaf 模板引擎支持多种表达式:
变量表达式:${...}
选择变量表达式:*{...}
链接表达式:@{...}
国际化表达式:#{...}
片段引用表达式:~{...}
(1)引入提示
在html页面中引入thymeleaf命名空间,即,此时在html模板文件中动态的属性使用th:命名空间修饰 。
<html lang="en" xmlns:th="http://www.thymeleaf.org">
(2)变量表达式(获取变量值)
<div th:text="'你是否读过,'+${session.book}+'!!'">
同EL表达式有些相似的效果,如果有数据,被替换
完成前后端分离效果(美工代码)
</div>
(3)URL表达式(引入URL)
引用静态资源文件(CSS使用th:href,js使用使用th:src)
href链接URL(使用th:href)
(4)选择或星号表达式
<div th:object="${session.user}">
<p>Name: <span th:text="*{firstName}">Sebastian</span>.</p>
<p>Surname: <span th:text="*{lastName}">Pepper</span>.</p>
<p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p>
</div>
//等价于
<div>
<p>Name: <span th:text="${session.user.firstName}">Sebastian</span>.</p>
<p>Surname: <span th:text="${session.user.lastName}">Pepper</span>.</p>
<p>Nationality: <span th:text="${session.user.nationality}">Saturn</span>.</p>
</div>
(5)文字国际化表达式
简单看一下就可以,文字国际化表达式允许我们从一个外部文件获取区域文字信息(.properties),用Key索引Value,还可以提供一组参数(可选).
#{main.title}
#{message.entrycreated(${entryId})} 可以在模板文件中找到这样的表达式代码:
<table>
<th th:text="#{header.address.city}">
<th th:text="#{header.address.country}">
</table>
以上就是关于“模板引擎Thymeleaf的详细介绍”,如果想了解更多可查看Thymeleaf基础教程,里面的课程内容由浅到深,细致全面,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习