最近用Spring boot开发一些测试平台和工具,用到页面展示的部分,

选择的是thymeleaf模版引擎。

页面开发的7788快结束了,下面来总结下此过程中对thymeleaf的使用总结。

什么是Thymeleaf

Thymeleaf是一个Java库。它是一个XML / XHTML / HTML5模板引擎,能够在模板文件上应用一组转换,将程序产生的数据或者文本显示到模板文件上。

Thymeleaf依赖的jar包【如果你不是用Spring boot 项目中引用thymeleaf包,那你需要的jar包可能如下】

要使用Thymeleaf,需要在我们的web应用的classpath路径中引入相关的jar,如下:

thymeleaf-2.1.3.RELEASE.jar
ognl-3.0.6.jar
javassist-3.16.1-GA.jar
unbescape-1.0.jar
servlet-api-2.5.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
log4j-1.2.15.jar
mail-1.4.jar
activation-1.1.jar

 

那下面说说Spring boot+thymeleaf 怎么创建页面,向页面上传数据

使用thymeleaf只需要将文件放入目录 classpath:/tempaltes/ 文件后缀是.html
注意在以前的传统web项目中:静态资源修改后,是不需要重启的;但是Spring boot项目中,修改后要重启

用法介绍:
<p th:text="${welcome}" >welcome to my thymeleaf....</p>
以上,先从${welcome}中取值

th就是替换原来的html的值: th:html属性名=值;
th:xx 【参见第十章】 Attribute Pre
th:text 获取文本值 显示将hello渲染为h1后的值
th:utext 获取文本值(不转义) 显示<h1>hello</h1>

符号:
th:text="${welcome}" 除了$以外,其他符号?

一、th属性
常用th属性解读
html有的属性,Thymeleaf基本都有,而常用的属性大概有七八个。其中th属性执行的优先级从1~8,数字越低优先级越高。

一、th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7
二、th:value:设置当前元素的value值,类似修改指定属性的还有th:src,th:href。优先级不高:order=6
三、th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,详细往后看。优先级很高:order=2
四、th:if:条件判断,类似的还有th:unless,th:switch,th:case。优先级较高:order=3
五、th:insert:代码块引入,类似的还有th:replace,th:include,三者的区别较大,若使用不恰当会破坏html结构,常用于公共代码块提取的场景。优先级最高:order=1
六、th:fragment:定义代码块,方便被th:insert引用。优先级最低:order=8
七、th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。优先级一般:order=4
八、th:attr:修改任意属性,实际开发中用的较少,因为有丰富的其他th属性帮忙,类似的还有th:attrappend,th:attrprepend。优先级一般:order=5

常用th属性使用
使用Thymeleaf属性需要注意点以下五点:

一、若要使用Thymeleaf语法,首先要声明名称空间: xmlns:th="http://www.thymeleaf.org"
二、设置文本内容 th:text,设置input的值 th:value,循环输出 th:each,条件判断 th:if,插入代码块 th:insert,定义代码块 th:fragment,声明变量 th:object
三、th:each 的用法需要格外注意,打个比方:如果你要循环一个div中的p标签,则th:each属性必须放在p标签上。若你将th:each属性放在div上,则循环的是将整个div。
四、变量表达式中提供了很多的内置方法,该内置方法是用#开头,请不要与#{}消息表达式弄混。
五、th:insert,th:replace,th:include 三种插入代码块的效果相似,但区别很大。

thymeleaf 基本语法
标准表达式语法
1. 简单表达式 simple expressions
${...} 变量表达式 Variable Expressions
*{...} 选择变量表达式 Selection Variable Expressions
#{...} 消息表达式 Message Expressions
@{...} 链接url表达式 Link URL Expressions
~{...} 代码块表达式 Fragment Expressions

字面量
'one text','another text'...文本
0,1,3.0,12.45... 数值
true false 布尔类型
null 空
one,sometext,main 文本字符

文本操作
+ 字符串连接
|The name is ${name}| 字符串连接

算数运算
+ - * / % 二元运算符
- 负号 一元运算符

布尔操作
and or 二元操作符
! not 非 一元操作符

关系操作符
> < >= <= gt lt ge le
== != eq ne

条件判断
(if) ? (then) if-then
(if) ? (then):(else) if-then-else

Thymeleaf的基本语法总结的更多相关文章

  1. thymeleaf 内联语法

    十二. thymeleaf内联语法 内联:th:inline,值有三种:text,javascript,none 12.1 th:inline="text"文本内联 <p t ...

  2. Thymeleaf 2-基础语法

    三.基础语法 1.创建HTML 由上文也可以知道需要在html中添加: <html xmlns:th="http://www.thymeleaf.org"> 这样,下文 ...

  3. thymeleaf的具体语法

    thymeleaf模板引擎是什么?请点击我查看 文章目录 thymeleaf模板引擎是什么?请点击我查看 代码 该实例代码延续[thymeleaf模板引擎](https://blog.csdn.net ...

  4. Thymeleaf 标准表达式语法

    变量表达式${ } 在控制器中往页面传递几个变量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Controller public class IndexController ...

  5. Thymeleaf模板引擎语法

    th:text    用于显示值 th:object      接收后台传来的对象 th:action      提交表单 th:value       绑定值 th:field         绑定 ...

  6. Spring Boot整合Thymeleaf及Thymeleaf页面基本语法

    引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  7. thymeleaf 基本语法

    四.标准表达式语法 · 简单表达式 (simple expressions) ${...}  变量表达式 *{...}  选择变量表达式 #{...}  消息表达式 @{...}  链接url表达式 ...

  8. Thymeleaf系列五 迭代,if,switch语法

      1. 概述 这里介绍thymeleaf的编程语法,本节主要包括如下内容 迭代语法:th:each; iteration status 条件语法:th:if; th:unless switch语法: ...

  9. thymeleaf 语法

    一.语法: 1. 简单表达式 (simple expressions) ${...}  变量表达式 *{...}  选择变量表达式 #{...}  消息表达式 @{...}  链接url表达式 2.字 ...

随机推荐

  1. linux学习笔记---grep

    先来讲讲grep(搜索过滤) 1.命令格式: grep [option] pattern file 2.命令参数: -a 不要忽略二进制的数据 -A<显示行数>          除了显示 ...

  2. Android Camera2 预览,拍照,人脸检测并实时展现

    https://www.jianshu.com/p/5414ba2b5508 背景     最近需要做一个人脸检测并实时预览的功能.就是边检测人脸,边在预览界面上框出来.     当然本人并不是专门做 ...

  3. AJAX(表单验证)/JSON之一

    ## 什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 1. 异步通信:浏览器利用独立的线程与服务器进行通信, ...

  4. chrome platform

    folder_extension: ---menifest.json ---navigator_change.js manifest.json { "manifest_version&quo ...

  5. Docker学习笔记之运行和管理容器

    0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”.在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Doc ...

  6. JavaWeb创建的文件夹默认在tomcat/bin中

    系统项目中需要设置缓存目录,原本项目中的目录设置为D:/cache目录,这怎么成?于是手动改成了cache目录,原本想使用了相对路径,web项目能够把缓存路径设置到tomcat的webapp的具体项目 ...

  7. Python之字符编码(一)

    一.了解字符编码的知识储备? 1.计算机基础知识? 计算机中所有的软件文件(包括:操作系统)都存储在硬盘,启动计算机,计算机需要把系统文件都去到内存中. 2.文本编辑器存取文件的原理(nodepad+ ...

  8. Linux pip 命令无法使用问题

    Linux pip 命令无法使用问题 pip 命令无法使用,说明 pip 没有安装,我们可以使用终端命令进行安装. sudo apt-get installl python-pip 安装成功之后,可以 ...

  9. mvc 遇到的问题

    VS2010无法加载项目,此安装不支持该项目类型. 错误产生的原因是以前是用2010建的,后来用2012打开,可能是经过转换后,2010又打不开了. 用VS2010无法加载项目,提示:无法打开项目文件 ...

  10. 20145315何佳蕾《网络对抗》web基础

    实验步骤 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) ...