学科分类
目录
Spring Boot开发

常用标签

在HTML页面上使用Thymeleaf标签,Thymeleaf 标签能够动态地替换掉静态内容,使页面动态展示。

为了大家更直观的认识Thymeleaf模板,下面展示一个在HTML文件中嵌入了Thymeleaf的页面文件,示例代码如下:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" media="all"
          href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
    <title>Title</title>
</head>
<body>
    <p th:text="#{hello}">欢迎进入Thymeleaf的学习</p>
</body>
</html>

上述代码中,“xmlns:th="http://www.thymeleaf.org"”用于引入Thymeleaf模板引擎标签,使用关键字“th”标注标签是Thymeleaf模板提供的标签,其中,“th:href”用于引入外联样式文件,“th:text”用于动态显示标签文本内容。除此之外,Thymeleaf模板提供了很多标签,接下来,通过一张表罗列Thymeleaf的常用标签,具体如表1所示。

表1 Thymeleaf常用标签

th:标签 说明
th:insert 页面片段包含(类似JSP中的include标签)
th:replace 页面片段包含(类似JSP中的include标签)
th:each 元素遍历(类似JSP中的c:forEach标签)
th:if 条件判断,如果为真
th:unless 条件判断,如果为假
th:switch 条件判断,进行选择性匹配
th:case 条件判断,进行选择性匹配
th:object 变量声明
th:with 变量声明
th:attr 通用属性修改
th:attrprepend 通用属性修改,将计算结果追加前缀到现有属性值
th:attrappend 通用属性修改,将计算结果追加后缀到现有属性值
th:value 属性值修改,指定标签属性值
th:href 用于设定链接地址
th:src 用于设定链接地址
th:text 用于指定标签显示的文本内容
th:utext 用于指定标签显示的文本内容,对特殊标签不转义
th:fragment 声明片段
th:remove 移除片段

在表1中,列举了Thymeleaf模板引擎的一些常用属性,并对这些属性进行了优先级排序和功能说明。关于其他更多的属性支持,读者在使用过程中可以查看官方文档,也可以通过开发工具的快捷提示信息进行使用。

需要说明的是,上述以HTML为基础嵌入了Thymeleaf模板引擎,并使用th:属性进行了页面需求开发。这种Thymeleaf模板页面虽然与纯HTML页面基本相似,但已经不是一个标准的HTML 5页面了,这是因为在Thymeleaf页面中使用的th:属性是HTML 5规范所不允许的。如果我们想要使用Thymeleaf模板进行纯HTML 5的页面开发,可以使用data-th-属性替换th:属性进行页面开发。例如,将上面的示例使用data-th-*属性进行修改,示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" media="all"
          href="../../css/gtvg.css" data-th-href="@{/css/gtvg.css}" />
    <title>Title</title>
</head>
<body>
    <p data-th-text="#{hello}">欢迎进入Thymeleaf的学习</p>
</body>
</html>

上述代码中,使用标准HTML 5语法格式嵌入了Thymeleaf模板引擎进行页面动态数据展示。从示例可以看出,在使用data-th-属性时,不需要引入Thymeleaf标签,并且属性名要使用data-th-的形式。不过使用这种方式不会出现属性的快捷提示,对开发来说比较麻烦,因此在实际开发中,相对推荐使用引入Thymeleaf标签的形式进行模板引擎页面的开发。

小提示:

Thymeleaf支持处理六种模板视图,包括HTML、XML、TEXT、JAVASCRIPT、CSS和RAW。本章主要讲解Thymeleaf对HTML页面的嵌入处理,Thymeleaf对其他模板视图的嵌入使用略有不同,读者在使用时可以查看Thymeleaf文档说明。

点击此处
隐藏目录