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设置为非null /非空的东西,它就可以正常工作 当我这样做时,忽略空输入并恢复旧值。
日期的类似结果。
如果我从ui:repeat中删除对var / status的引用没有区别。即使显式引用#{bean.items [0] .longProperty}也会失败。
同样精确的h:inputText在ui之外正常工作:repeat和null / empty值工作正常。
此外,内部 a ui:repeat,空字符串工作正常,如果属性是String而不是需要转换的对象。
为了使它更奇怪:如果我在输入上放置一个valueChangeEvent,我确实看到event.getNewValue()
在我预期时返回null - 但是我的setter用旧值调用。
知道发生了什么事吗?
答案 0 :(得分:1)
用ui:repeat
证明了它的Mojarra / JSF实现错误答案 1 :(得分:0)
现在重复一遍,在这里(由Roger Kitain饰演):
答案 2 :(得分:0)
将<ui:repeat>
更改为<a4j:repeat>
。
<a4j:repeat var="item" value="#{bean.items}">
<h:inputText value="#{item.longProperty}"/>
</a4j:repeat>
更多信息:Richfaces a4j:repeat。
在Problem with ui:repeat and NULL values in JSF 2.x了解<ui:repeat>
错误的详情。