2017-08-23 26 views
2

JSFのネイティブコンバーター「<f:convertNumber type="currency"/>」を使用すると、ネガティブmonetariesの値は、通貨記号の前に文字「-」を保持します。例えばConvertNumberはJSFの負の値を返します

-$ 56.134.726,99

.xhtml

<p:column> 
    <h:outputText value="#{entity.monetaryValue}"> 
     <f:convertNumber type="currency"/> 
    </h:outputText> 
</p:column> 

自分のコンバータを作成異なるこの問題への解決策はありますか?

+0

実際に問題は何ですか?マイナス記号を完全にスキップしますか?あるいは、あなたはそれを別の場所、例えば '$'の後でなく、前に印刷したいのですか? – krokodilko

+0

私は代わりに '$ -56.134.726,99'を望んでいました。 - $ 56.134.726,99' –

答えて

3

<f:convertNumber type="currency" currencySymbol="$" locale="DE" 
     pattern="¤###,###,##0.00;¤-###,###,##0.00" /> 

パターンがhere


注記に記載されている:私はこのために、ロケール,locale="DE"を使用小数点の区切り文字として使用されます。グループセパレータとして.

0

Converterを実装してgetAsString()メソッドをオーバーライド:についてどう


public String getAsString(FacesContext context, UIComponent component, Object value) { 
    if (value == null) 
       return ""; 
    return "$" + String.valueOf(NumberFormat.getNumberInstance(Locale.US).format(value)); 
} 
+0

"自分のコンバータの作成とは異なるこの問題の解決法はありますか? " –

+0

私はこの問題を抱えていました。 – Nick

+0

nice !!しかし、他の答えで渡された 'パターン 'を使っていました。 –

関連する問題