在Apache Velocity中格式化BigDecimal

3
在我的velocity模板中,我一直使用Velocity NumberTool将数字变量格式化为货币。其中大多数是原始双精度浮点数,这个工具可以正常工作。
然而,一些是BigDecimal类型,它们似乎根本没有被格式化。渲染时只会显示表达式本身。
$global.numberTool.currency($someBigDecimalVariable)

有没有一种方便的方式在Velocity中将BigDecimal格式化为货币?有哪些替代方案?
2个回答

1

由于您可以将任何对象放入Velocity上下文中,因此最简单的方法是将自己的DecimalFormat对象放入上下文中,并在模板中调用其format()方法。

当然,这不是一个非常好的解决方案,但您可以对其进行改进,使其更加通用。


你需要记住的一件事是,DecimalFormat 不是线程安全的。这可能有关或不相关,但意识到这一点很重要。 - biziclop

0
你能在Velocity中使用JSTL吗?我使用fmt JSTL标签将BigDecimal显示为货币,像这样:

1
我记得Velocity不允许使用JSTL,但这已经有一段时间了。 - madth3
我完全没有Velocity的经验,因为他要求提供替代方案,所以我认为这可能会有所帮助。 - ma cılay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接