使用f:convertNumber以格式$ ###,###,###。##显示金额

时间:2013-11-21 13:30:35

标签: jsf number-formatting

我想以$12,050,999.00格式显示金额。

我尝试如下:

<h:outputText value="#{sampleBean.Amount}">
    <f:convertNumber pattern="###,###" currencySymbol="$" type="currency"/>
</h:outputText>

但是,它没有以所需格式显示金额。我改为12,050,999

所需格式如下图所示:

enter image description here

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:21)

您的pattern对于某种货币是错误的。您应该使用pattern="¤#,##0.00"

<f:convertNumber pattern="¤#,##0.00" currencySymbol="$" />

但是,还有更多内容:在原始代码中,您还指定了type属性,这是正确的,但这与pattern属性互斥,即pattern属性获得优先权。

您实际上应该省略pattern属性并坚持type属性。

<f:convertNumber type="currency" currencySymbol="$" />

请注意,这会使用UIViewRoot#getLocale()提供的区域设置,该区域设置应该是基于英语/美国的区域设置,以便获得美元货币的正确最终格式。您想在<f:view>

中明确指定它
<f:view locale="en_US">

locale的{​​{1}}属性:

<f:convertNumber>

另见: