2012-10-26 55 views
1

鑽嘴魚科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被調用了舊值。

任何想法是怎麼回事?

+0

事實上,在提交之後看到舊值是指示驗證/轉換錯誤,所以並不奇怪。我的懷疑是''本質上是一個循環結構,可以理解的是,它會扼殺空值並導致轉換錯誤 – kolossus

+0

,除了沒有轉換/驗證失敗。沒有例外記錄並且沒有驗證信息 - ''爲空。轉換和驗證不會在空字段上觸發。 – wrschneider

回答