首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在循环中将Thymeleaf变量的值相加,并在循环完成后显示最终值

如何在循环中将Thymeleaf变量的值相加,并在循环完成后显示最终值
EN

Stack Overflow用户
提问于 2018-02-01 14:02:10
回答 1查看 10.6K关注 0票数 6

我是产品的设计单,我想用表格显示胸腺叶模板中的所有产品,最后,在循环中我想显示胸腺叶中所有产品的价格总和。如何定义并执行全局变量?

代码语言:javascript
复制
<table th:with="totalPrice=0">
    <tr th:each="count,iterator: ${product.paidService}">
        <td th:text="${iterator.index+1}"></td>
        <td th:text="${count.name}"></td>
        <td>Paid</td>
        <td th:text="${count.price}"></td>
        <p th:with="totalPrice=${totalPrice + count.price}"> </p>
    </tr>
    <span th:text="${totalPrice}"></span>
</table>

我的目标是0作为输出,但我希望所有产品的价格总和作为输出。

如何使变量成为全局变量并解决我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 05:26:46

通常,一旦用th:with定义了变量,就不能再更改它。它们并不是被设计成这样使用的。相反,它们是简单的临时变量。

Thymeleaf也没有全局变量的概念。最接近这一点的是你放在模型上的属性。

您可以使用collection projection来执行以下操作:

代码语言:javascript
复制
<table>
    <tr th:each="count,iterator: ${product.paidService}">
        <td th:text="${iterator.index+1}" />
        <td th:text="${count.name}" />
        <td>Paid</td>
        <td th:text="${count.price}" />
    </tr>

    <tr>
        <td colspan="3" />
        <td><b th:text="${#aggregates.sum(product.paidService.![price])}" /></td>
    </tr>
</table>

(常规样式注释。如果您想做胸腺叶的事情,但又不想输出任何东西,那么您应该使用<th:block /> --而不是直接将<p /><span />标记放在表行中。)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48556302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档