Thymeleaf语法标签

本文介绍了Thymeleaf的常用语法标签,包括分支条件(th:if/th:unless)、判断是否为空(#lists.isEmpty)、链接表达式(@{...})、变量表达式(${...})、选择变量表达式(*{...})以及消息表达式(#{...})。Thymeleaf通过这些标签实现动态内容渲染,如在HTML中插入链接、显示JavaBean属性、遍历List和Map等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thymeleaf通过特殊的标签来寻找属于Thymeleaf的部分,并渲染该部分内容,Thymeleaf也主要通过标签来识别替换对应位置内容,Thymeleaf标签有很多很多,功能也很丰富,这里比较常用的标签如下:

标签作用示例
th:id替换id   <input th:id="${user.id}"/>
th:text文本替换   <p text:="${user.name}">hello</p>
th:utext 支持html的文本替换  <p utext:="${htmlcontent}">content</p>
th:object 替换对象  <div th:object="${user}"></div>
th:value替换值  <input th:value="${user.name}" >
th:each迭代  <tr th:each="student:${user}" >
th:href 替换超链接  <a th:href="@{index.html}">超链接</a>
th:src 替换资源

 <script type="text/javascript" th:src="@{index.js}"></script>

   

       分支:

             if和unless :标记了 th:if、th:unless 的标签根据条件决定是否显示。

<tr th:if="${#lists.isEmpty(session.fruitList)}">
//为false执行这行代码
		<td colspan="4">sorry,库存为空!</td>
//true执行这行代码
<tr th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit :${session.fruitList}">
 ...显示内容
...
</tr>

 判断是否为空 #lists.isEmpty(获取值):

<tr th:if="${#lists.isEmpty(获取值)}">
<tr th:if="${#lists.isEmpty(session.fruitList)}">


     链接表达式: @{…}

在Thymeleaf中,如果想引入链接比如link,href,src,需要使用@{资源地址}引入资源。

其中资源地址可以static目录下的静态资源,也可以是互联网中的绝对资源。

<a th:href="@{index.html}">超链接</a>

   变量表达式: ${…}:

          在Thymeleaf中可以通过 ${...} 进行取值,这点和ONGL表达式语法一致。
          取普通字符串:
       如果在controller中的Model直接存储某字符串,我们可以直接 ${对象名} 进行取值。

        取JavaBean对象:

                JavaBean自身有一些其他属性,所以咱们就可以使用 ${对象名.对象属性}

     或者 ${对象名['对象属性']} 来取值,如果该JavaBean如果写了get方法,也可以通过            get方法取值例如  ${对象.get方法名}。

        取List集合(each):

       因为List集合是个有序列表,里面内容可能不止一个,需要遍历List对其中对象取值,而遍历需要用到标签:th:each,具体使用为 <tr th:each="item.${userlist}"> ,其中item相当于遍历每一次的对象名,在下面的作用域可以直接使用,而userlist就是类里面的数据或者其他数据存储的List的名称。

<h2>List取值</h2>
<table  border="1">
    <tr th:each="item:${userlist}">
        <td th:text="${item.每个数据的对象名称}"></td>
    </tr>
</table>

          Map取值:

           1. 直接取Map:

                      很多时候不存在JavaBean而是将一些值放到Map中,在将Map存在Model中,就需要对Map取值,对于Map取值可以${Map名["key"]}来取值,也可以通过${Map名.key}取值,也可以使用 ${map.get('key')}(java语法) 取值。

<h2>Map取值</h2>
<table bgcolor="#8fbc8f" border="1">
    <tr>
        <td>place:</td>
        <td th:text="${map.get('键')}"></td>
    </tr>
    <tr>
        <td>feeling:</td>
        <td th:text="${map['键']}"></td>
    </tr>
</table>

           2. 遍历Map:

              如果说你想遍历Map获取它的key和value那也是可以的,这里就要使用和List相似的遍历                 方法,使用 th:each="item:${Map名}" 进行遍历,在下面只需使用 item.key                     和 item.value 即可获得值。

<h2>Map遍历</h2>
<table bgcolor="#ffe4c4" border="1">
    <tr th:each="item:${map}">
        <td th:text="${item.key}"></td>
        <td th:text="${item.value}"></td>
    </tr>
</table>


     选择变量表达式: *{…} :

         变量表达式不仅可以写成 ${…} ,而且还可以写成 *{…} 。

                  区别:星号语法对选定对象而不是整个上下文评估表达式。只要没有选定的对象,                                     美元  (${…}) 和星号  (*{...})  的语法就完全一样。

             选定对象:使用 th:object 属性的表达式的结果。就可以选定对象。

<form th:action="@{/update.do}" method="post" th:object="${fruit}">
<!--		表示在table标签内部所使用的所有属性都是来自于fruit		-->
				<table id="tbl_fruit" >
						<td><input type="hidden" name="fid" th:value="*{fid}"/></td>
					<tr>
						<th class="w20">名称:</th>
				<td><input type="text" name="fname" th:value=" *{fname}"/></td>
						</tr>

					<tr>
						<th class="w20">单价:</th>
						<td><input type="text" name="price" th:value="*{price}"/></td>
					</tr>

					<tr>
						<th class="w20">库存</th>
						<td><input type="text" name="fcount" th:value="*{fcount}"/></td>
					</tr>

					<tr>
						<th class="w20">备注:</th>
						<td><input type="text" name="remark" th:value="*{remark}"/></td>
					</tr>

					<tr>
						<th colspan="2">
							<input type="submit" value="修改">
							</th>

				</table>
				</form>


     上面的代码如果不使用选定对象,完全等价于:

<td><input type="text" name="fname" th:value="${fruit.fname}"/>
 . . . .
 . . . .
 </td>
...

   消息表达: #{…} :

                        文本外部化(信息)是从模板文件中提取模板代码的片段,以便可以将它们保存在单                          独的文件(通常是.properties文件)中,通俗易懂的来说 #{…}语法就是用来读取配置                          文件中数据的,在Thymeleaf你可以使用 #{...} 语法获取消息。


     
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值