我在 java 项目中使用 thymeleaf 模板,但在对某些变量执行以下算术运算时注意到一个奇怪的结果:
<div th:with="p=${(a.num != null ? a.num[0] : 1 ) * #list.size(b.items)}">
<p th:inline="text">[[${p}]] of [[#list.size(b.items)]] items</p>
</div>
给定 a.num == null,并且 b.items 包含 20,我的预期结果是:
20 of 20 items
但目前它显示如下:
11111111111111111111 of 20 items
它似乎将 1 作为字符串读取并将其连接 20 次。我怎样才能让它执行乘法呢?
我不太熟悉 thymeleaf,这是我第一次处理这个项目,所以我不想更改服务层上的值,而只是在 View 层上执行这个简单的乘法。谢谢
最佳答案
两者都必须是数字才能执行乘法。
${'3' * 4}
- 结果为 3333${3 * 4 }
- 将得到 12${#conversions.convert('3', 'java.lang.Integer') * 4}
将得到 12。这里我们正在转换java.lang.String
到java.lang.Integer
关于java - Thymeleaf 操作执行连接而不是乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081224/