我有一个申请。每个用户都有一些设置选项。 这些选项是:
thousendSeperator = You can selected "." or ","
decimalPlaces = You can selected "." or ","
postionCurrencySymbol = "after" or "previous" => $ 100,00 or 100,00 $
现在我需要一个模式吗? 这三个设置存储在数据库中。所以我从豆子里得到它。
我尝试这样的事情
<h:outputText
value="#{article.salePrice}">
<f:convertNumber
pattern="###{loginBean.user.thousendSeperator}###{loginBean.user.decimalPlaces}"
currencySymbol="#{article.mandatoryCurrency.currencySymbol}" />
</h:outputText>
但它不起作用。 有人可以帮我解决一下吗?
答案 0 :(得分:0)
<f:convertNumber>
不起作用。对于特定于区域设置的货币格式,您需要设置type="currency"
和locale
以及货币符号。用于分隔符的实际字符是locale
依赖的。 pattern
属性仅告诉如何格式化数字以及在何处定位分隔符(注意:它不会告诉哪些字符用于分隔符!这又依赖于来自当地)。
因此,请修改破损的模型,以获取用户的区域设置和产品的货币符号。
<f:convertNumber type="currency" locale="#{user.locale}" currencySymbol="#{product.currency}" />
通过这种方式,您无需记住世界上已知的每个区域设置应使用哪些分隔符。 Java为您做到了这一切。