模板引擎Thymeleaf(一文让你理解Thymeleaf)

一、Thymeleaf

(一)模板引擎

模板引擎,是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。使用模板引擎的目的就是为了实现前后端分离。

JSP也是一种模板引擎,其与大量的Java代码相绑定,使前后端无法分离,产生混淆。

  • JSP中可以嵌入Java代码块。

  • JSP中的标签是对Java代码的一种封装,也就是说,JSP中的标签本质也是Java代码。

  • JSP最终会被JSP引擎解析为Servlet,而这个Servlet通过输出语句会形成HTML。Servlet也是Java代码。

(二)Thymeleaf(百里香叶子)

Thymeleaf is a modern server-side Java template engine for both web and standalone environments.

官网地址:https://www.thymeleaf.org/

Thymeleaf文件的扩展为是.html,是对html文件的一种扩展

(三)将Thymeleaf嵌入SpringBoot工程

使用步骤:

1> 创建一个Spring Boot工程,导入thymeleaf依赖

2> 在src/main/resources/templates目录下定义一个thymeleaf文件

3> 定义一个处理器,其处理器方法的返回值为前面定义的thymeleaf文件的文件名,注意不需要写.html扩展名

二、标准表达式

标准表达式一般要结合着th:text标签来使用。

(一)变量表达式${…}

(二)选择表达式*{…}

三、常见属性

(一)th:text/th:utext

这两个属性均用于在标签中显示动态文本。

th:text:
原样显示,不会解析文本中的html标签

th:utext:
会解析文本中的html标签

温馨小提示:
当只有Thymeleaf的html文件发生变化,配置文件、Java代码都没有改变时,可以通过如下方式在不重启应用的情况下,更新页面。

1)在Idea的这个发生变更的html文件上按下组合键Ctrl + Shift + F9

2)在浏览器页面上刷新即可

(二)th:name/th:value

该属性可以获取标签动态的name属性值,及标签的默认value值。

(三)th:inline

内联属性需要配合着[[${xxx}]]来使用。

(四)th:if

该属性用于逻辑判断,类似于JSTL中的

(五)th:switch/th:case

该属性用于多分支判断,类似于JSTL中的switch-case。

(六)th:each

该属性用于遍历数组、List、Set及Map,类似于JSTL中的

1)遍历List
遍历数组、List、Set方式是相同的。

2)常用状态属性
index:显示当前遍历对象的索引号(从0开始计数)

count:显示当前遍历对象的序号(从1开始计数)

even/odd:显示当前遍历对象是否为偶数/奇数(从0开始计数),布尔值

first/last:显示当前遍历对象是否是第一个/最后一个,布尔值

3)遍历Map
首先要清楚,Map的一个键-值对是一个Map.Entry对象。

四、内置对象

为了方便编程,Thymeleaf中内置了很多的具有特定功能的对象,程序员只需要使用#开头,后跟对象名称就可以直接使用了。

常见的内置对象有两种:

(一)Servlet API对象

获取到Servlet域对象。通过#request、#session、#servletContext可以获取Servlet中的HttpServletRequest、HttpSession、ServletContext(application域)对象。

(二)表达式实用对象

表达式实用对象的官方文档在官网如下地址:

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#appendix-b-expression-utility-objects

19 Appendix B: Expression Utility Objects:

#executionInfo:获取当前Thymeleaf模板对象的执行信息。

#messages:获取外部信息。

#uris/#urls:URI/URL处理工具。

#conversions:类型转换工具。

#dates:日期处理工具。

#calendars:日历处理工具。

#numbers:数字处理工具。

#strings:字符串处理工具。

#objects:对象处理工具。

#booleans:布尔值处理工具。

#arrays:数组处理工具。

#lists:List处理工具。

#sets:Set处理工具。||\\s

#maps:Map处理工具。

#aggregates:聚合处理工具,例如,对数组、集合进行求和、平均值等。

#ids:th:id属性处理工具。

五、Thymeleaf应用

你可能感兴趣的:(前端技术,python,java,jsp,javascript,html)