【问题标题】:Thymeleaf change variableThymeleaf 变化变量
【发布时间】:2014-05-01 02:43:08
【问题描述】:

我是 Thymeleaf 的新手,我需要做这样的事情:

<div th:each="element : ${list}" th:with="test=false">
    <div th:each="element2 : ${list2}">
        <div th:if="element2.name == 'someName'">
            <div th:with="test=true">test changed</div>
        </div>
    </div>
    <div th:text="${test}"></div>
</div>

如果我尝试此代码,我会看到“测试已更改”,但我的变量测试始终为假

【问题讨论】:

    标签: java spring thymeleaf


    【解决方案1】:

    A with 表达式创建或覆盖一个局部变量

    这意味着修改后的变量只能在您声明 with 表达式的元素内访问。

    在您的情况下,测试的输出是在修改 div 之外编写的,因此您可以从外部获得结果。

    【讨论】:

    • 谢谢你的回答,你能告诉我是否可以改变局部变量的值?如果是,如何,如果不是,创建类似我需要的东西的最佳解决方案是什么?
    • 您可以更改它,但只能在您声明 with 表达式的这个 dom 元素内使用更改后的版本。你想达到什么目标?除了使用 with 之外,很可能还有另一种方法。
    • 我有 List 的位置和位置。我必须查看类似这样的内容:Place1(Position1(user1, user2)), Position2(user3, user4)), Place2(Position1(user5)) 等。在创建带有位置的 div 之前,我需要检查是否有任何位置和位置用户属于正确视图,如果不是,我不创建 div。我只需要像示例中一样更改我的变量。
    • 我建议您在此处或在百里香论坛中提出该问题。如何渲染.... 您还可以使用 th:if 属性来决定是否应该渲染标签。您在地方创建一个方法,例如“hasposition”,然后在 th:if 中使用它。
    • 这个问题有答案吗?我正在尝试实现类似于 Dawid K 所面临的事情 - 使用 th:with 在循环上迭代到 0,并在特定条件下将其重新分配回 0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2015-01-19
    • 2016-03-05
    • 1970-01-01
    • 2014-04-29
    • 2020-02-29
    • 1970-01-01
    相关资源
    最近更新 更多