Thymeleaf的官网为: http://www.thymeleaf.org/

一、变量表达式${…}

使用${…}括起来的表达式,称为变量表达式。该表达式的内容会显示在HTML标签体文本处。

该表达式一般都是通过th:text标签属性进行展示的

处理器类

修改index页面

二、选择表达式*{…}

选择表达式,也称为星号表达式,其是使用*{…}括起来的表达式。一般用于展示对象的属性。该表达式的内容会显示在HTML标签体文本处。但其需要与th:object标签属性联用,先使用th:object标签选择了对象,再使用*{…}选择要展示的对象属性。该表达式可以有效降低页面中代码的冗余。

不过,其也可以不与th:object标签联用,在*{…}中直接使用“对象.属性”方式,这种写法与变量表达式相同。

该表达式一般都是通过th:text标签属性进行展示的

(3)URL表达式@{…}

使用@{…}括起来,并且其中只能写一个绝对URL或相对URL地址的表达式,称为URL表达式。这个绝对/相对URL地址中一般是包含有动态参数的,需要结合变量表达式${…}进行字符串拼接。

@{…}中的URL地址具有三种写法。

A、以http协议开头的绝对地址

在进行字符串拼接时使用加号(+)连接,容易出错。但使用双竖线则无需字符串拼接,简单易读。但是,Idea会对其中的问号(?)报错,不过其不影响运行

在页面通过查看源码可以看到其解析结果。当然,对于and符(&)Thymeleaf会将其解析为实体形式(&),但浏览器会对(&)进行正确解析

B、以/开头的相对地址

在URL表达式中,Thymeleaf会将开头的斜杠(/)解析为当前工程的上下文路径ContextPath,而浏览器会自动为其添加“http://主机名:端口号”,即其即为一个绝对路径

在页面通过查看源码可以看到其解析结果中已经添加了上下文路径

C、不以/开头的相对地址

在页面通过查看源码可以看到其解析结果中是未添加任何东西的,即没有上下文路径。也就是说,其是相对于当前请求路径的一个相对地址

三、Thymeleaf常见属性

逻辑运算相关属性

(1) th:if

该属性用于逻辑判断,类似于JSTL中的<c:if/>

(2) th:switch/th:case

一旦某个case与switch的值相匹配了,剩余的case则不再比较。th:case=”*”表示默表示默认的case,前面的case都不匹配时候执行该case

(3) th:each

该属性用于遍历数组、List、Set、Map,类似于JSTL中的<c:forEach/>

A、遍历List

遍历数组、Set与遍历List方式是相同的

B、遍历Map

Map的键值对是一个Map.Entry对象

四、html标签相关

(1) th:text/th:utext

这两个属性均用于在标签体中显示动态文本。但不同的是,th:utext会解析文本中的HTML标签,而th:text则是原样显示

controller

页面



效果


(2) th:name/th:value

该属性用于获取标签动态name属性值,及标签的默认value值

controller

页面

效果

(3) URL路径相关

th:action、th:src、th:href,这三个都是与URL路径相关的属性。若这些URL中包含有动态参数,则它们的值需要URL表达式@{…}与变量表达式${…}配合使用。

controller

页面

更多

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining

Thymeleaf标准表达式的更多相关文章

  1. (二)Thymeleaf标准表达式之——简单表达式

    2. 标准表达式(Standard Expression Syntax) 标准表达式包含以下几个方面: 简单表达式: 变量表达式: ${...} 选择变量表达式: *{...} 消息表达式: #{.. ...

  2. (三)Thymeleaf标准表达式之——文字(literals)

    2.2 文字(literals) 模板名称:text.html 2.2.1 文本(text literals)(放在 单引号 里面,可以是任意字符) <p> Now you are loo ...

  3. Thymeleaf 标准表达式语法

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

  4. (五)Thymeleaf标准表达式之——[7->8]条件表达式& 默认表达式

    2.7 条件表达式 模板名称:condition-express.html <1>a ? b:c  (if then:else) <2>a?c (if else) 条件表达式( ...

  5. (四)Thymeleaf标准表达式之——[3->6] 操作符(文本、算术、布尔、比较及相等)

    2.3 文本操作符 模板名称:text.html 连接符: +   可以是任意字符和表达式等 文本替换符:|    不能表达出条件表达式(官网:只能是变量表达式) e.g. 1.<span th ...

  6. ADO.NET+Access: 1,标准表达式中数据类型不匹配

    ylbtech-Error-ADO.NET+Access: 1,标准表达式中数据类型不匹配. 1.A,错误代码返回顶部  1,标准表达式中数据类型不匹配. 1.B,出错原因分析返回顶部  未解决 1. ...

  7. [转]access 标准表达式中数据类型不匹配

    好久没有用access,今儿遇到一个特别让人无语的问题: access数据表的Date/Time类型的字段,假如字段名为dtime: 如果直接用dtime=‘2013/9/6 10:50:21’,sq ...

  8. SQL语句,标准表达式中数据类型不匹配

    id索引进行数据查询时提示错误! 标准表达式中数据类型不匹配. 两边的单引号去掉就好了,否则是在使用文本型. 改为:去掉两个单引号 ok,成功!

  9. thymeleaf 的标准表达式

                                              

随机推荐

  1. loadRunner运行场景时,事务数为0或是只显示添加的事务的数

    脚本编辑好后,不要着急到controller去执行,注意查看Run-time Settings(运行是设置)-->General(常规)-->Miscellaneous(其他)中查看Aut ...

  2. vue禁用浏览器回退

    解决方案 mounted() { history.pushState(null, null, document.URL) window.addEventListener('popstate', () ...

  3. 【机器学习基础】关于深度学习的Tips

    继续回到神经网络章节,上次只对模型进行了简要的介绍,以及做了一个Hello World的练习,这节主要是对当我们结果不好时具体该去做些什么呢?本节就总结一些在深度学习中一些基本的解决问题的办法. 为什 ...

  4. 解决异常:“The last packet sent successfully to the server was 0 milliseconds ago. ”的办法

    出现异常"The last packet sent successfully to the server was 0 milliseconds ago."的大部分原因是由于数据库回 ...

  5. 论文翻译:2020_WaveCRN: An efficient convolutional recurrent neural network for end-to-end speech enhancement

    论文地址:用于端到端语音增强的卷积递归神经网络 论文代码:https://github.com/aleXiehta/WaveCRN 引用格式:Hsieh T A, Wang H M, Lu X, et ...

  6. 如何在C#中使用Google.Protobuf工具

    protobuf是一个语言无关.平台无关的序列化协议,由谷歌开源提供.再加上其高性能.存储占用更小等特点,在云原生的应用中越来越广泛. 在C#中主要有两种方法来使用protobuf协议,nuget包分 ...

  7. 【HTML】WebStorage

    WebStorage 2019-11-13  10:46:18  by冲冲 1. 概况 早期浏览器的本地存储使用cookie,当前推荐使用Web Storage. Web Storage的数据以&qu ...

  8. Sql server 删除重复记录的SQL语句

    原文地址:https://www.cnblogs.com/luohoufu/archive/2008/06/05/1214286.html 在项目开发过程中有个模块日清表页面数据重复,当时那个页面的数 ...

  9. Linux检测磁盘空间

    在linux中,文件系统将所有的磁盘都并入一个虚拟目录下,在使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载. 1.mount命令 mount会输出当前系统上挂载的设备列表,要在虚拟目录 ...

  10. 【原】MDC日志链路设计

    背景 我们项目中现有日志系统,采用的是slf4j+logback这套日志组件,也是Java生态里面比较常用的一个日志组件,但是随着分布式的演进,这套组件明显存在以下几个问题: 1.各种无关日志穿行其中 ...