web-dev-qa-db-ja.com

f:convertNumberを使用して$ ###、###、###。##の形式で金額を表示します

金額を$12,050,999.00形式で表示したいと思います。

私は次のように試しました:

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

ただし、希望する形式で金額が表示されませんでした。代わりに12,050,999を受け取りました。

目的のフォーマットを次の図に示します。

enter image description here

どうすればこれを達成できますか?

11
09Q71AO534

あなたのpatternは通貨に対して間違っています。 _pattern="¤#,##0.00"_を使用する必要があります。

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

ただし、さらに問題があります。元のコードではtype属性も指定していますが、これは正しいですが、これはpattern属性と相互に排他的であるため、pattern属性は優先されます。

実際にはpattern属性を省略し、type属性を守る必要があります。

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

これはUIViewRoot#getLocale()で使用可能なロケールを使用することに注意してください。これは、USD通貨の正しい最終形式を取得するために、英語/米国ベースのロケールであることが期待されています。 _<f:view>_のいずれかで明示的に指定する必要があります。

_<f:view locale="en_US">
_

または_<f:convertNumber>_のlocale属性内:

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

以下も参照してください。

22
BalusC