Je souhaite afficher le montant en $12,050,999.00
format.
J'ai essayé comme suit:
<h:outputText value="#{sampleBean.Amount}">
<f:convertNumber pattern="###,###" currencySymbol="$" type="currency"/>
</h:outputText>
Cependant, il n'a pas affiché le montant dans le format souhaité. J'ai eu 12,050,999
au lieu.
Le format souhaité est indiqué dans l'image ci-dessous:
Comment puis-je atteindre cet objectif?
Votre pattern
est incorrect pour une devise. Vous devez utiliser pattern="¤#,##0.00"
.
<f:convertNumber pattern="¤#,##0.00" currencySymbol="$" />
Cependant, il y a plus à dire: dans votre code d'origine, vous avez également spécifié l'attribut type
, ce qui est correct, mais cela s'exclut mutuellement avec l'attribut pattern
grâce auquel l'attribut pattern
obtient la priorité.
Vous devez en fait omettre l'attribut pattern
et vous en tenir à l'attribut type
.
<f:convertNumber type="currency" currencySymbol="$" />
Notez que cela utilise les paramètres régionaux disponibles par UIViewRoot#getLocale()
qui devrait être un paramètre régional basé sur l'anglais/les États-Unis afin d'obtenir le bon format final pour la devise USD. Vous souhaitez le spécifier explicitement dans le <f:view>
:
<f:view locale="en_US">
ou dans l'attribut locale
du <f:convertNumber>
:
<f:convertNumber type="currency" currencySymbol="$" locale="en_US" />