在我的速度模板中,我一直使用Velocity NumberTool将数字变量格式化为货币。 其中大部分是原始双打,他们使用这个工具很好。格式化Apache Velocity中的BigDecimal
但是,有些是BigDecimal类型的,它们似乎根本没有被格式化。这将只显示表达式是渲染时:
$global.numberTool.currency($someBigDecimalVariable)
是否有格式化BigDecimal与Velocity作为货币的便利方式?有什么选择?
在我的速度模板中,我一直使用Velocity NumberTool将数字变量格式化为货币。 其中大部分是原始双打,他们使用这个工具很好。格式化Apache Velocity中的BigDecimal
但是,有些是BigDecimal类型的,它们似乎根本没有被格式化。这将只显示表达式是渲染时:
$global.numberTool.currency($someBigDecimalVariable)
是否有格式化BigDecimal与Velocity作为货币的便利方式?有什么选择?
既然你可以把任何物体进入速度范围内,最容易做的事情是把自己的DecimalFormat
对象在上下文并在模板中调用它的format()
方法。
当然,这不是一个很好的解决方案,但您可以改进它,使其更通用。
你可以在Velocity中使用JSTL吗?我用FMT JSTL标签显示BigDecimals的是这样一个货币:
<fmt:formatNumber value="${myBigDecimalValue}" type="currency" currencySymbol="€" currencyCode="EUR" minFractionDigits="2" maxFractionDigits="2"/>
我似乎记得Velocity不允许JSTL,但它已经有一段时间了。 – madth3 2012-03-21 01:18:37
我完全没有Velocity的经验,因为他要求替代方案,我认为这可能有帮助。 – 2012-03-21 01:22:15
但你必须牢记的一点是'DecimalFormat'不是线程安全的。这可能相关,也可能不相关,但很重要。 – biziclop 2012-06-27 17:52:07