八、Spring Boot thymeleaf 常用语法
(一)、字符串输出
1. th:text
<span th:text="Hello"></span>
<span th:text="${msg}"></span>
注:${msg},msg为后端传递的变量。
2. th:value
input 输入框中的值为后端传递的 msg。
<input type="text" name="msg" th:value="${msg}">
3.字符串操作
空值判断:<span th:text="${#strings.isEmpty(msg)}"></span>
是否包含:<span th:text="${#strings.contains(msg, '9')}"></span>
是否以xx开头:<span th:text="${#strings.startsWith(msg, 'T')}"></span>
是否以xx结尾:<span th:text="${#strings.endsWith(msg, '案例')}"></span>
长度计算:<span th:text="${#strings.length(msg)}"></span>
子串位置(未找到返回-1):<span th:text="${#strings.indexOf(msg, '一')}"></span>
字符串截取(从x开始截取到最后):<span th:text="${#strings.substring(msg, 2)}"></span>
字符串截取(从x开始截取到x):<span th:text="${#strings.substring(msg, 2, 4)}"></span>
转为大写:<span th:text="${#strings.toUpperCase(msg)}"></span>
转为小写:<span th:text="${#strings.toLowerCase(msg)}"></span>
(二)、日期操作
1. 日期格式化
日期格式转换,默认与浏览器语言一致:<span th:text="${#dates.format(date)}"></span>
日期格式转换,指定格式:<span th:text="${#dates.format(date,'yyyy年MM月dd日')}"></span>
注:date,未后端传递的值。
2.日期提取
提取年份:<span th:text="${#dates.year(date)}"></span>
提取月份:<span th:text="${#dates.month(date)}"></span>
提取日:<span th:text="${#dates.day(date)}"></span>
提取时:<span th:text="${#dates.hour(date)}"></span>
提取分:<span th:text="${#dates.minute(date)}"></span>
提取秒:<span th:text="${#dates.second(date)}"></span>
...
(三)、条件判断
1.th:if
if判断:
<span th:if="${sex} == '男'"></span>
性别:男
<span th:if="${sex} == '女'"></span>
性别:女
2.th:switch
switch判断:
<div th:switch="${id}">
<span th:case="1">Id为1</span>
<span th:case="2">Id为2</span>
<span th:case="3">Id为3</span>
</div>
(四)、迭代
each:
<div th:each="l, var: ${list}">
<span th:text="${l}"></span>
<span th:text="${var.index}"></span>
<span th:text="${var.count}"></span>
<span th:text="${var.size}"></span>
<span th:text="${var.even}"></span>
<span th:text="${var.odd}"></span>
<span th:text="${var.first}"></span>
<span th:text="${var.last}"></span>
</div>
- l,每次迭代的值,名称可自定义。如果值是一个对象,可以直接通过(.)取值
- var,状态变量,当前迭代对象的一些状态值
- var.index,当前迭代对象索引
- var.count,当前迭代的计数从x开始
- var.even/odd:布尔值,当前循环是否是偶数/奇数
- var.first:布尔值,当前对象是否为第一个
- var.last:布尔值,当前对象是否为最后一个
注:如果迭代对为map,还需对迭代的值再次进行迭代,才能取到 key 和 value。