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

标签 java servlets thymeleaf httpsession

我在循环内的 Java 类中添加了一些 Http session 变量,每个 session 变量都包含一个唯一标识符作为其名称的一部分。

我希望能够使用为每个变量设置的标识符从 Thymeleaf 模板上的循环中读取这些变量。这可能吗?如果是这样,我应该使用什么语法将 id 插入到 Thymeleaf 模板中 session 变量的名称中?

每个Http session 变量的名称是“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>

(它有效,但一般来说我不会推荐这种结构。我认为您应该使用 map ,或为提取这样的数据而构建的其他数据结构。然后您可以执行以下操作:session.sids[item.id]session.sids.get(item.id))

关于java - 有没有办法动态地将 id 插入 Thymeleaf 变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45327859/

相关文章:

java - 如何在不更改 URL 的情况下从 Controller 调用方法到 thymeleaf

java - Thymeleaf 复选框以及数据库中的对象列表

java - 选择并返回多个数组元素?等等 arrayName.get(1 到 3)

java - 小型 Android 开发团队遇到的常见问题有哪些?

java - Eclipse 打开,然后在图形出现后立即关闭

java - Eclipse/Maven 错误 : "No compiler is provided in this environment"

java - 如何使用 java servlet 从 mysql 数据库中检索图像并将其显示在 HTML img 标签中?

java - 如何在java中创建另存为对话框?

java - 如何从 JMS 读取和收集响应消息并使它们可供正确的 servlet 线程使用?

hyperlink - 在 thymeleaf 中转义 '&' 字符