2012-10-26 34 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

回答