2012-03-20 111 views
2

在我的速度模板中,我一直使用Velocity NumberTool將數字變量格式化爲貨幣。 其中大部分是原始雙打,他們使用這個工具很好。格式化Apache Velocity中的BigDecimal

但是,有些是BigDecimal類型的,它們似乎根本沒有被格式化。這將只顯示錶達式是渲染時:

$global.numberTool.currency($someBigDecimalVariable) 

是否有格式化BigDecimal與Velocity作爲貨幣的便利方式?有什麼選擇?

回答

1

既然你可以把任何物體進入速度範圍內,最容易做的事情是把自己的DecimalFormat對象在上下文並在模板中調用它的format()方法。

當然,這不是一個很好的解決方案,但您可以改進它,使其更通用。

+0

但你必須牢記的一點是'DecimalFormat'不是線程安全的。這可能相關,也可能不相關,但很重要。 – biziclop 2012-06-27 17:52:07

0

你可以在Velocity中使用JSTL嗎?我用FMT JSTL標籤顯示BigDecimals的是這樣一個貨幣:

<fmt:formatNumber value="${myBigDecimalValue}" type="currency" currencySymbol="€" currencyCode="EUR" minFractionDigits="2" maxFractionDigits="2"/>

+1

我似乎記得Velocity不允許JSTL,但它已經有一段時間了。 – madth3 2012-03-21 01:18:37

+0

我完全沒有Velocity的經驗,因爲他要求替代方案,我認爲這可能有幫助。 – 2012-03-21 01:22:15