在Grails中表示货币(价值+货币)的最佳实践

10

我对Java货币类型不太熟悉,以及它在Grails中的使用方式。虽然我还没有使用过它,但我在视图中看到了一个标签<g:currencySelect>。那么,在域类中如何表示它。

class Money {
BigDecimal value
Currency currency
....
}

还是有更好的解决方案吗?可以比较不同的货币对象,根据区域设置进行格式化(例如在欧盟使用','作为分隔符)

先感谢您。 Babu。

5个回答

2

0
你可能想看一下货币插件。它提供了一个Money类,用于保存不同货币的货币金额。它们可以嵌入到域类中,如下所示:
class CustomerTransaction {
    Date date = new Date()
    Money amount

    static embedded = ['money']
}

看起来很有趣。使用货币的领域类会是什么样子,底层列类型是什么? - armandino
谢谢你们两个的评论。货币插件给了我一个自己实现的想法。 - bsr
1
不要使用货币插件。它已经无法使用且存在问题。 - Antony Stubbs
在Grails域类中自己处理货币并不困难,Hibernate会自动将货币代码(3个字母)保存为varchar。您只需通过定义具有字符串值的getter和setter来帮助Grails UI,因为不存在带有字符串参数的构造函数:class MyDomainObj { BigDecimal amount Currency currencystatic transient ['currencyCode'] def setCurrencyCode(String currencyCode) { currency = Currency.getInstance(currencyCode) } String getCurrencyCode() { return currency.getCurrencyCode() } }在您的GSP中使用“currencyCode”。 - peveuve

0
使用JScience库。可惜它还没有在Maven仓库中,也没有Groovy包装器使其更加Groovier(TM)。

0

0

由于原始答案似乎已经过时,您可能想看一下money-plugin,它是最新的并且目前得到维护。


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