spring bootthymeleaf

    技术2025-06-18  11

    spring boot 引入thymeleaf依赖

    依赖 <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-java8time</artifactId> </dependency> 命名空间

    xmlns:th=“http://www.thymeleaf.org”

    thymeleaf简单使用 五. 设置属性 我们先来说一说th:xxx的部分,即设置属性。

    Thymeleaf的核心功能就是通过在html标签里面追加属性。可以设置的属性非常多,详细的可以参考 Thymeleaf所有属性的还没发文档。这里我们就挑选些常用的举几个例子,其他大家可以举一反三推断出用法。

    th:object=“yyy” 将对象作为一个范围内可用的变量。一般和选择表达式*{zzz}配合使用,选择表达式后面会讲到。th:text=“yyy” 这个属性可以添加到几乎所有分为头尾两部分<></>的html标签中,如、等。th:text="yyy"的作用是把表达式yyy对应的值添加到标签的中间。 如用户名渲染后就是user。th:value="${title}" 这个属性一般和标签搭配使用,用来设置标签的value值。 如渲染后就是。

    六. 表达式 下面我们再来对这些th:xxx="yyy"中"yyy"的部分进行讲解。这个yyy我们一般称之为表达式。 Thymeleaf里面表达式主要有以下几种。

    y y y 变 量 表 达 式 , 用 来 获 取 上 下 文 对 象 里 面 的 值 ( c o n t r o l l e r 返 回 的 m o d e l ) 。 还 是 以 上 面 的 例 子 来 说 明 , 如 果 我 想 要 取 到 p a g e 对 象 中 的 n u m b e r 属 性 , 使 用 {yyy} 变量表达式,用来获取上下文对象里面的值(controller返回的model)。还是以上面的例子来说明,如果我想要取到page对象中的number属性,使用 yyycontrollermodelpagenumber使{page.number}即可。 变量表达式#{yyy} 消息表达式,根据消息的key来获取消息内容。一般是用来做国际化用的。*{yyy} 选择表达式,跟变量表达式用法差不多,但变量表达式是获取上下文里的对象,选择表达式是获取一个选择的对象。

    选择表达式一般和th:object=标签配合使用,还是以上面的例子来说明。 先用th:object=" u s e r " 选 择 了 上 下 文 中 的 u s e r 对 象 , 下 面 想 使 用 u s e r 对 象 的 u s e r n a m e 属 性 时 , 直 接 使 用 ∗ u s e r n a m e 就 可 以 了 。 你 可 能 想 要 问 , 我 直 接 使 用 {user}"选择了上下文中的user对象,下面想使用user对象的username属性时,直接使用*{username}就可以了。 你可能想要问,我直接使用 user"user使userusername使username使{user.username}不是一样可以找到user对象的username属性么,为什么还要再搞个选择表达式? 因为${user.username}是先从下上文找到user,对象,再从user对象里找到username属性;而*{username}是直接从user对象里找到username属性。当需要从一个对象里获取很多属性的时候,使用选择表达式可以提高效率。 选择表达式 @{yyy} 链接表达式 设置超链接时用的表达式,一般和th:action、th:href配合使用。 链接表达式 ~{page :: fragment} 分段表达式,主要用作公共模块的复用,一般和th:insert、th:replace搭配使用。以后讲模块复用的时候再细说。 yyy 文字。可以为字符串、数字、布尔、null。如用户名渲染后为user。

    _ 无操作。下划线是thymeleaf表达式的特殊字符,如果表达式就一个下划线,则什么也不做。例如用户名渲染后依然是用户名。

    七. 迭代器 我们在渲染页面时,经常需要对一个list进行循环处理,最典型的场景就是使用表格展示多条数据。这时,就需要使用到thymeleaf的迭代器th:each。

    <tr th:each="user : ${users}"> <td th:text="${user.id}">id</td> <td th:text="${user.username}">用户名</td>

    在这个例子中,users是一个list,通过迭代器th:each对其进行遍历,每次迭代获取到的对象为user。在th:each属性的对应的标签之间…,为user对象的有效范围。

    有时候,我们还想要知道迭代器的一些状态属性,如总数,当前索引等。可以通过如下方法获取。

    <tr th:each="user,stat : ${users}"> <td th:text="${stat.index}">index</td> <td th:text="${user.id}">id</td> <td th:text="${user.username}">用户名</td>

    th:each=""的第二个变量stat,就是迭代器的状态变量,从这个状态变量里面可以获取到很多我们想要的属性,主要有下面这些。

    stat.index 当前对象在list中的索引。从0开始。 stat.count 和index差不多,也是当前对象在list中的索引,不过是从1开始。 stat.size 迭代器中元素的总数。 stat.current 当前迭代的对象。 stat.even 当前迭代的索引是否是奇数,索引指stat.index stat.odd 当前迭代的索引是否是偶数,索引指stat.index stat.first 当前迭代的对象是否是迭代器中的第一个。 stat.last 当前迭代的对象是否是迭代器中的最后一个。 八. 条件语句 th:if=“boolean” th:if的表达式需为boolean值。如果为true,则标签显示,如果为false,则标签不显示。 th:unless=“boolean” th:unless和th:if相反,表达式也需为boolean值。如果为true,则标签不显示,如果为false,则标签显示。

    <span th:if="${stat.odd}">偶</span> <span th:unless="${stat.odd}">奇</span>

    条件判断 th:swtich 一般和 th:case结合使用 。和java语言中的swtich case语法用法类似。

    <td th:switch="${user.enabled}"> <span th:case="true">可用</span><span th:case="false">不可用</span> </td>

    简单使用为转载 链接:https://www.jianshu.com/p/3426794a17cb

    Processed: 0.013, SQL: 9