Thymeleaf标准表达式
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标准表达式的更多相关文章
- (二)Thymeleaf标准表达式之——简单表达式
2. 标准表达式(Standard Expression Syntax) 标准表达式包含以下几个方面: 简单表达式: 变量表达式: ${...} 选择变量表达式: *{...} 消息表达式: #{.. ...
- (三)Thymeleaf标准表达式之——文字(literals)
2.2 文字(literals) 模板名称:text.html 2.2.1 文本(text literals)(放在 单引号 里面,可以是任意字符) <p> Now you are loo ...
- Thymeleaf 标准表达式语法
变量表达式${ } 在控制器中往页面传递几个变量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Controller public class IndexController ...
- (五)Thymeleaf标准表达式之——[7->8]条件表达式& 默认表达式
2.7 条件表达式 模板名称:condition-express.html <1>a ? b:c (if then:else) <2>a?c (if else) 条件表达式( ...
- (四)Thymeleaf标准表达式之——[3->6] 操作符(文本、算术、布尔、比较及相等)
2.3 文本操作符 模板名称:text.html 连接符: + 可以是任意字符和表达式等 文本替换符:| 不能表达出条件表达式(官网:只能是变量表达式) e.g. 1.<span th ...
- ADO.NET+Access: 1,标准表达式中数据类型不匹配
ylbtech-Error-ADO.NET+Access: 1,标准表达式中数据类型不匹配. 1.A,错误代码返回顶部 1,标准表达式中数据类型不匹配. 1.B,出错原因分析返回顶部 未解决 1. ...
- [转]access 标准表达式中数据类型不匹配
好久没有用access,今儿遇到一个特别让人无语的问题: access数据表的Date/Time类型的字段,假如字段名为dtime: 如果直接用dtime=‘2013/9/6 10:50:21’,sq ...
- SQL语句,标准表达式中数据类型不匹配
id索引进行数据查询时提示错误! 标准表达式中数据类型不匹配. 两边的单引号去掉就好了,否则是在使用文本型. 改为:去掉两个单引号 ok,成功!
- thymeleaf 的标准表达式
随机推荐
- loadRunner运行场景时,事务数为0或是只显示添加的事务的数
脚本编辑好后,不要着急到controller去执行,注意查看Run-time Settings(运行是设置)-->General(常规)-->Miscellaneous(其他)中查看Aut ...
- vue禁用浏览器回退
解决方案 mounted() { history.pushState(null, null, document.URL) window.addEventListener('popstate', () ...
- 【机器学习基础】关于深度学习的Tips
继续回到神经网络章节,上次只对模型进行了简要的介绍,以及做了一个Hello World的练习,这节主要是对当我们结果不好时具体该去做些什么呢?本节就总结一些在深度学习中一些基本的解决问题的办法. 为什 ...
- 解决异常:“The last packet sent successfully to the server was 0 milliseconds ago. ”的办法
出现异常"The last packet sent successfully to the server was 0 milliseconds ago."的大部分原因是由于数据库回 ...
- 论文翻译: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 ...
- 如何在C#中使用Google.Protobuf工具
protobuf是一个语言无关.平台无关的序列化协议,由谷歌开源提供.再加上其高性能.存储占用更小等特点,在云原生的应用中越来越广泛. 在C#中主要有两种方法来使用protobuf协议,nuget包分 ...
- 【HTML】WebStorage
WebStorage 2019-11-13 10:46:18 by冲冲 1. 概况 早期浏览器的本地存储使用cookie,当前推荐使用Web Storage. Web Storage的数据以&qu ...
- Sql server 删除重复记录的SQL语句
原文地址:https://www.cnblogs.com/luohoufu/archive/2008/06/05/1214286.html 在项目开发过程中有个模块日清表页面数据重复,当时那个页面的数 ...
- Linux检测磁盘空间
在linux中,文件系统将所有的磁盘都并入一个虚拟目录下,在使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载. 1.mount命令 mount会输出当前系统上挂载的设备列表,要在虚拟目录 ...
- 【原】MDC日志链路设计
背景 我们项目中现有日志系统,采用的是slf4j+logback这套日志组件,也是Java生态里面比较常用的一个日志组件,但是随着分布式的演进,这套组件明显存在以下几个问题: 1.各种无关日志穿行其中 ...