【发布时间】:2015-03-13 11:26:00
【问题描述】:
我正在为使用 spring mvc 和 thymeleaf 作为模板引擎的 Web 应用程序开发用户故事。
我的控制器将一个对象传递给我的视图,该对象包含一个名为 quantite 的 BigDecimal 字段。即使它是 BigDecimal,我也需要将其渲染为整数,因为它永远不会有小数部分,所以我的目标是将 BigDecimal 像 50.00 渲染为 50 我在视图中渲染它Thymeleaf 使用以下语法。
<span th:text="${#numbers.formatInteger(placAction.quantite,2,'POINT')}"></span>
这意味着我想将数字格式化为整数以显示最少两位数并将点用作千位分隔符。
下图显示了我的结果
所以格式没有正确应用。当我测试这种行为时,我注意到在表达式中添加一个小字会引发正确的数字呈现。例如,我以这种方式更改了前面的表达式:
<span th:text="${#numbers.formatInteger(placAction.quantite,2,'POINT')} + ' (no units)'"></span>
这里有一张图片来说明渲染
如您现在所见,格式已正确呈现。我不理解这种奇怪的行为,似乎 Thymeleaf 不应用 #numbers.formatInteger 直到我将其结果与一个 litteral 相加,并且只有当 litteral 不是空白的(仅由空格组成)我也测试过
<span th:text="${#numbers.formatInteger(placAction.quantite,2,'POINT')} + ' '"></span>
但它没有产生预期的结果。每个向表达式添加非空白文字的更改都会正确呈现它,但是我有一个不需要的附加文本,但是当我删除它时,呈现再次不正确。所以非常欢迎任何帮助解决这个问题。
【问题讨论】:
-
你使用的是什么版本的 Thymeleaf?
标签: java spring-mvc thymeleaf