2015-11-25 104 views
1

我想要做的輸出文本與貨幣的價值:<F:convertNumber>裏面的<h:的outputText>不起作用

<h:form rendered="#{not empty cartBean.cartMap}"> 
      <h:outputText escape="false" styleClass="cart-text" 
          value="Your shopping cart: &lt;b&gt;#{cartBean.cartDishesCount}&lt;/b&gt; items, total= &lt;b&gt;#{cartBean.updateTotalPrice()}&lt;/b&gt;"> 
       <f:convertNumber currencyCode="USD" type="currency"/> <!-- todo - don't work --> 
      </h:outputText> 
     </h:form> 

<f:converNumber>無視和頁面輸出仍然是這樣的: Your shopping cart: 9 items, total= 46.800000000000004

+2

應該如何渲染知道你的字符串的部分,他應該格式化爲貨幣? – Smutje

+1

您還有一個主要問題:使用浮點類型而不是'BigDecimal'來獲取金錢和價格。 – BalusC

回答

5

嘗試只值作爲在

<h:outputText value="#{cartBean.updateTotalPrice}" > 
    <f:convertNumber currencyCode="USD" type="currency" /> 
</h:outputText> 

轉換號需要數字的值,因爲我們將outputText的值是一個字符串,它不能識別它。

任何不是數字的東西都會單獨顯示。

如果你希望明確的指定位置,那麼這是一個選項

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

當然,當我把我的輸出分成兩部分時,第二個只是'cartBean.updateTotalPrice'的值,它開始按我的需要工作。在這種情況下'currencyCode =「USD」'也在工作。萬分感謝! – DimaSan