有没有办法动态地将 id 插入 Thymeleaf 变量?
Is there a way of inserting an id into a Thymeleaf variable dynamically?
我在循环内的 Java class 中添加了一些 Http 会话变量,每个会话变量都包含一个唯一标识符作为其名称的一部分。
我希望能够使用为每个变量设置的标识符从 Thymeleaf 模板上的循环中读取这些变量。这可能吗?如果是这样,我应该使用什么语法将 ID 插入到 Thymeleaf 模板中我的会话变量的名称中?
每个Http会话变量的名字是"Sid"+unique_id,如下。
<tr th:each="item : ${items}">
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:if="${item.expired != null
and session.Sid${item.id} == 'available'}">
</tr>
您可以使用 preprocessing 执行此操作。
<tr th:each="item : ${items}">
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:if="${item.expired != null and session.Sid__${item.id}__ == 'available'}">??<td>
</tr>
(它有效,但总的来说我不会推荐这种结构。我认为你应该使用地图,或者其他一些为像这样提取数据而构建的数据结构。然后你可以做类似的事情: session.sids[item.id]
或 session.sids.get(item.id)
)
我在循环内的 Java class 中添加了一些 Http 会话变量,每个会话变量都包含一个唯一标识符作为其名称的一部分。
我希望能够使用为每个变量设置的标识符从 Thymeleaf 模板上的循环中读取这些变量。这可能吗?如果是这样,我应该使用什么语法将 ID 插入到 Thymeleaf 模板中我的会话变量的名称中?
每个Http会话变量的名字是"Sid"+unique_id,如下。
<tr th:each="item : ${items}">
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:if="${item.expired != null
and session.Sid${item.id} == 'available'}">
</tr>
您可以使用 preprocessing 执行此操作。
<tr th:each="item : ${items}">
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:if="${item.expired != null and session.Sid__${item.id}__ == 'available'}">??<td>
</tr>
(它有效,但总的来说我不会推荐这种结构。我认为你应该使用地图,或者其他一些为像这样提取数据而构建的数据结构。然后你可以做类似的事情: session.sids[item.id]
或 session.sids.get(item.id)
)