2013-07-24 50 views
0

我已閱讀了許多關於此JSF2驗證錯誤的文章,但無法明白爲什麼會發生這種情況。 我的選擇項是一個列表,其中ListItem是具有兩個字符串字段,鍵和值的POJO。當我提交頁面選擇一個值爲「0」的選項選項時,出現以下錯誤:驗證錯誤:值無效。提交零時JSF2值無效

要提交的值綁定到int。下面是在列表項equals方法,但我有一個調試點這種方法,它似乎並不被打到,所以我不能看到,如果這是問題:

public boolean equals(Object other) 
{ 
    if (other == null || !(other instanceof ListItem)) 
     return false; 
    ListItem otherLI = (ListItem) other; 
    return otherLI.key.equals(key); 
} 

任何想法?

回答

0

似乎在UISelectOne validateValue方法中進行了一些調試之後修復了它,看起來SelectUtils.valueIsNoSelectionOption在作爲Integer對象提交的值爲0時返回true。

我noSelectionOption是以下幾點:

<f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="" /> 

改變項目值後,以#{NULL}似乎工作確定。

<f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="#{null}" />