我在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,这是我第一次处理这个项目,所以我宁愿不更改服务层的值,而只是在视图层执行此简单乘法。谢谢
答案 0 :(得分:1)
两者都必须是数字才能执行乘法运算。
${'3' * 4}
-将产生3333 ${3 * 4 }
-将产生12 ${#conversions.convert('3', 'java.lang.Integer') * 4}
将得到12。在这里,我们将java.lang.String
转换为java.lang.Integer