2012-05-31 70 views
1

根據使用的f:視圖語言環境,第一個確實在點或逗號(總是爲點)之間進行選擇時出現問題嗎?或者是否有一個規則如何嵌套號碼轉換器。數字轉換器換行忽略語言環境?錯誤?

<f:converter converterId="javax.faces.BigDecimal"> 
    <f:convertNumber maxIntegerDigits="3" maxFractionDigits="2"/> 
</f:converter> 

2.

<f:convertNumber maxIntegerDigits="3" maxFractionDigits="2"> 
    <f:converter converterId="javax.faces.BigDecimal"/> 
</f:convertNumber> 

回答

0

不能嵌套轉換器。它們將按照聲明的順序應用於最接近的父項UIComponent。您也可以不指定多個轉換器。只有最後一個真的會被使用。每個ValueHolder組件只能有一個轉換器,而每個EditableValueHolder可以有多個驗證器。

只要堅持<f:convertNumber>。當用於已經綁定到屬性BigDecimal類型的輸入組件時,它將遵守類型。

+0

謝謝。這解釋了這種行爲。 – djmj

+0

不客氣。 – BalusC

+0

如果jsf自動檢測浮點類型和使用的語言環境,會更容易。特別是如果使用帶數字類型的converterId進行定義。看起來是這樣,爲每個浮點值組件添加''的樣板。 – djmj