有没有办法动态地将id插入Thymeleaf变量?

时间:2017-07-26 13:03:40

标签: java servlets thymeleaf httpsession

我在循环内的Java类中添加了一些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>

1 个答案:

答案 0 :(得分:1)

您可以使用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>

(它有效,但总的来说我不推荐这种结构。我认为你应该使用一个地图,或者为了提取这样的数据而构建的其他数据结构。然后你可以做类似的事情:{ {1}}或session.sids[item.id]