我是产品的设计单,我想用表格显示胸腺叶模板中的所有产品,最后,在循环中我想显示胸腺叶中所有产品的价格总和。如何定义并执行全局变量?
<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
作为输出,但我希望所有产品的价格总和作为输出。
如何使变量成为全局变量并解决我的问题?
发布于 2018-02-02 05:26:46
通常,一旦用th:with定义了变量,就不能再更改它。它们并不是被设计成这样使用的。相反,它们是简单的临时变量。
Thymeleaf也没有全局变量的概念。最接近这一点的是你放在模型上的属性。
您可以使用collection projection来执行以下操作:
<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 />
标记放在表行中。)
https://stackoverflow.com/questions/48556302
复制相似问题