Mojarra 2.1.6 / Glassfish 3.1.2
我有这样的东西
<ui:repeat var="item" value="#{bean.items}">
<h:inputText value="#{item.longProperty}"/>
</ui:repeat>
其中 Item 是具有 Long 属性的对象
public class Item {
private Long longProperty; // + getters/setters
}
只要我将 longProperty 设置为非空/非空,它就可以正常工作。
当我这样做时,将忽略空输入并恢复旧值。
日期的类似结果。
如果我从 ui:repeat 中消除对 var/status 的引用,这没有什么区别。即使明确引用 #{bean.items[0].longProperty} 也会以同样的方式失败。
完全相同的 h:inputText 在 ui:repeat 之外可以正常工作,而 null/empty 值也可以正常工作。
此外,在ui:repeat 中,如果属性是字符串而不是需要转换的对象,则空字符串可以正常工作。
更奇怪的是:如果我在输入上放置一个 valueChangeEvent,我确实看到它event.getNewValue()
在我期望的时候返回 null - 但是我的 setter 是用旧值调用的。
知道发生了什么吗?