鑽嘴魚科2.1.6/3.1.2的GlassfishJSF:無法在H設定空值:UI中的inputText:重複
我有這樣的事情
<ui:repeat var="item" value="#{bean.items}">
<h:inputText value="#{item.longProperty}"/>
</ui:repeat>
,其中項目是一個對象具有長屬性
public class Item {
private Long longProperty; // + getters/setters
}
它工作正常,只要我將longProperty設置爲非空/非空的東西。
當我這樣做時,null輸入被忽略,舊值被恢復。
相似的搜索結果。
如果我從ui:repeat中消除對var/status的引用,這沒有什麼區別。即使明確引用#{bean.items [0] .longProperty}也會以同樣的方式失敗。
確切的h:inputText可以在ui之外正常工作:repeat和null/empty值工作得很好。
此外,裏面一個ui:重複,空字符串工作正常,如果該屬性是一個字符串而不是需要轉換的對象。
爲了讓它更加怪異:如果我在輸入上放了一個valueChangeEvent,我確實看到event.getNewValue()
在我期望的時候返回null - 但我的setter被調用了舊值。
任何想法是怎麼回事?
事實上,在提交之後看到舊值是指示驗證/轉換錯誤,所以並不奇怪。我的懷疑是''本質上是一個循環結構,可以理解的是,它會扼殺空值並導致轉換錯誤 –
kolossus
,除了沒有轉換/驗證失敗。沒有例外記錄並且沒有驗證信息 - ' '爲空。轉換和驗證不會在空字段上觸發。 –
wrschneider