2011-04-14 72 views
2

我有一些h:inpuText字段來保存數字。所有十進制值都以「。」顯示。作爲分隔符,雖然我在faces-config.xml中以下條目:爲什麼h:inputText不使用默認語言環境進行數字轉換?

<locale-config> 
    <default-locale>de</default-locale> 
</locale-config> 

和呼叫

FacesContext.getCurrentInstance().getViewRoot().getLocale() 

返回 「德」。

但是,如果我將<f:convertNumber/>添加到我的h:inputText中,將顯示正確的小數分隔符(例如,6,2而不是6.2)。

是否必須將f:convertNumber添加到我的所有輸入字段,或者有沒有辦法?

感謝您的幫助!

回答

2

默認格式是浮點數的格式toString

考慮bean屬性foo

inputText沒有對數字類型的任何直接的支持;將會給出一個對象(java.lang.Double)並在輸出上對其調用toString。在表單提交中,瀏覽器發送String,表達式語言根據其強制類型規則(請參閱EL規範)將它強制回到一個雙精度值。

對於更復雜的邏輯,需要一個轉換器。這是一個強大的模型,因爲您可以轉換爲任何類型或不需要輸入/輸出控件來支持轉換。

+0

好的,謝謝。我一直認爲numberConverter會自動用於value =「#{bean.someNumberType}」的inputText字段, – 2011-04-14 09:48:24

相關問題