簡體   English   中英

javax.faces.convert.ConverterException:無法理解為貨幣值

[英]javax.faces.convert.ConverterException: could not be understood as a currency value

我無法將數字顯示為貨幣。

我使用的代碼是:

<h:outputText id="id_importo" value="33333,33"> 
    <f:convertNumber type="currency" currencySymbol="€" locale="it_IT"/>
</h:outputText>

產生此錯誤:

javax.faces.convert.ConverterException: id_importo: '33333,33' could not be understood as a currency value.
    at javax.faces.convert.NumberConverter.getAsObject(NumberConverter.java:621)
    at 
....

Caused by: java.text.ParseException: Unparseable number: "33333,33"
    at java.text.NumberFormat.parse(NumberFormat.java:344)
    at javax.faces.convert.NumberConverter.getAsObject(NumberConverter.java:614)
    ... 63 more

我甚至試過<h:outputText id="id_importo" value="33333,33">沒有運氣。

您正在嘗試將硬編碼字符串轉換為貨幣編號。 字符串值33333,33不是有效的貨幣編號。 您需要在前面添加貨幣符號,這恰好是您在轉換器中聲明的貨幣符號。 逗號可以保留為意大利語語言環境中的正確小數分隔符。

<h:outputText id="id_importo" value="€ 33333,33">    
    <f:convertNumber type="currency" currencySymbol="€" locale="it_IT" />
</h:outputText>

或者,如果您想將其解釋為實數十進制數,那么您應該將值包裝在EL表達式中並使用Java自己的小數分隔符.

<h:outputText id="id_importo" value="#{33333.33}">    
    <f:convertNumber type="currency" currencySymbol="€" locale="it_IT" />
</h:outputText>

通常,貨幣編號存儲為BigDecimal類型的bean屬性,而不是字符串類型屬性。

<h:outputText id="id_importo" value="#{bean.price}">    
    <f:convertNumber type="currency" currencySymbol="€" locale="it_IT" />
</h:outputText>
private BigDecimal price;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM