根据松散变量指定f:convertNumber模式

时间:2014-08-24 13:21:16

标签: jsf converter

我有一个申请。每个用户都有一些设置选项。 这些选项是:

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>

但它不起作用。 有人可以帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

<f:convertNumber>不起作用。对于特定于区域设置的货币格式,您需要设置type="currency"locale以及货币符号。用于分隔符的实际字符是locale依赖的。 pattern属性仅告诉如何格式化数字以及在何处定位分隔符(注意:它不会告诉哪些字符用于分隔符!这又依赖于来自当地)。

因此,请修改破损的模型,以获取用户的区域设置和产品的货币符号。

<f:convertNumber type="currency" locale="#{user.locale}" currencySymbol="#{product.currency}" />

通过这种方式,您无需记住世界上已知的每个区域设置应使用哪些分隔符。 Java为您做到了这一切。

另见: