Thymeleaf简单语法

Thymealf大多为th指令,要想获取指令提示,需要在html标签中增加xmlns属性

Thymeleaf模版

模版如下

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
</body>
</html>

基础语法

核心用法

th:xxx:动态渲染制定的html标签属性值或者th指令(遍历、判断等)

  • th:text:标签内文本渲染,同时会转义html标签
  • th:utext: 标签内文本渲染,不会转义html标签
<span th:text="${name}"></span> 
<span th:utext="${name}"></span>

对比以上标签当请求域中变量name为"< span > 123 < /span"两者渲染结果的区别

  • th:属性:标签指定属性渲染
<a th:href="@{${session.logoutUrl}}">退出</a>

这是动态指定了这个超链接属性的值为session域中logoutUrl的值

  • th:attr:标签任意属性渲染
<img th:attr="src=${imgUrl},style=${style}">

th:attr可以批量动态处理属性,通过attr=value的方式

  • th:if th:each …其他th指令
<img th:src="${imgUrl}" th:if="${isShow}">

th:if条件判断语句,若请求域中变量isShow为true,则显示该图片,否则不显示

表达式:用来动态取值

  • ${} : 变量取值,
  • @{} : url路径,@{}代表项目的根路径
  • #{} : 国际化消息
  • ~{}: 片段引用
  • *{}:变量选择:配合th:object绑定对象

还有很多工具类和内置对象,详细参照Thymeleaf官方文档
下面简单举例一个字符串工具类,作用将字符串转换为大写

<span th:text="${#strings.toUpperCase(name)}"></span>

thymeleaf遍历

用th:each来实现遍历,同时遍历中有一变量iterStat代表遍历状态,他有以下属性

  • index:遍历元素索引,从0开始
  • count:遍历元素索引,从1开始
  • size:遍历集合中元素总数量
  • current:当前遍历元素对象
  • even/odd:是否偶数/奇数行
  • first/last:是否为首(末)元素
<tr th:each="user,iterStat :${users}">
    <td th:text="${iterStat.count}"></td>
    <td th:text="${user.id}"></td>
    <td th:text="${user.name}"></td>
    <td th:text="|${user.age}-${user.age>=18?'成年':'未成年'}|"></td>
    <td>[[${user.email}]]</td>
</tr>

注意,这里的email为Thymeleaf的行内写法,age中||为字符串拼接语法

条件判断

通常使用th:if标签,除此之外还有th:switch-th:case标签

<tr th:each="user,iterStat :${users}">
    <td th:text="${iterStat.count}"></td>
    <td th:text="${user.id}"></td>
    <td th:text="${user.name}"></td>
    <td th:text="${user.age}"></td>
    <td>[[${user.email}]]</td>
    <td th:switch="#{user.role}">
        <p th:case="'admin'">管理员</p>
        <p th:case="'user'">普通用户</p>
        <p th:case="*">[[${user.role}]]</p>
    </td>
    <td th:if="${#string.isEmpty(user.address)}" th:text="'无地址'">
    </td>
    <td th:if="${not #string.isEmpty(user.address)}" th:text="${user.address}">
    </td>
</tr>

属性优先级

遍历>判断>通用方式属性修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值