2010-12-03 59 views
0

我一直在這個問題上停留了一段時間。我發現了一個早期的帖子裏BalusC在JSF 2.0沒有輸入集的JSF - UIInput組件字符串屬性爲空字符串

創建自己的轉換器被稱爲「EmptyToNullConverter」爲JSF 1.2版本 或指定場景參數
<context-param> 
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> 
    <param-value>true</param-value> 
</context-param> 

這些選項都沒有爲我工作提供了諮詢意見。它適用於其他人嗎?

做我自己的一些調查,結束了我逐步通過UIInput來源。直到它傳遞給ValueExpression時,我才能看到該值爲空。不幸的是,我沒有這方面的資料,所以我無法進一步深入研究。我假設它在這裏最終實例化一個新的字符串類型,而是將其傳遞給模型屬性?

我的環境是如下

  • 使用JSF-API-2.0.3和JSF的IMPL-2.0.3罐
  • 也使用RichFaces的3.3.3運行鑽嘴魚科RI,所以我不得不禁用jsf2的視圖處理器。仍然使用Facelets的罐子結果
  • 所有這一切都是在Tomcat 6

任何幫助將不勝感激

+0

什麼是模型屬性的類型?字符串或整數/長/數字? – BalusC 2010-12-04 19:57:10

回答

0

運行,我知道我們有使用RichFaces和Sun的默認JSF實現1.2這個問題。 解決此問題的一種方法是使用您自己的自定義轉換器來處理將空值(0,「」)轉換爲空值的任何類型。

另一種方式是做你backingbean內的轉換:

 
MyBackingBean { 

String myValue; 

public void setMyValue(String v) { 
    if (v==null || v.trim().length==0) { 
    myValue==null; 
    } else { 
    myValue=v; 
    } 
} 

public String getMyValue() { 
    return myValue; 
} 

}