我已经阅读了很多关于这个JSF2验证错误的帖子,但是看不出为什么会这样。 我的选择项是List,其中ListItem是一个POJO,包含两个String字段,键和值。当我提交页面选择值为“0”的选择项目选项时,我收到以下错误:验证错误:值无效。
要提交的值绑定到int。这是ListItem中的equals方法,但我在这个方法上有一个调试点,它似乎没有被命中,所以我看不出这是不是问题:
public boolean equals(Object other)
{
if (other == null || !(other instanceof ListItem))
return false;
ListItem otherLI = (ListItem) other;
return otherLI.key.equals(key);
}
有什么想法吗?
答案 0 :(得分:0)
在UISelectOne validateValue方法中进行一些调试之后似乎修复了它,当提交的值为0作为Integer对象时,似乎SelectUtils.valueIsNoSelectionOption返回true。
我的noSelectionOption如下:
<f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="" />
将itemValue更改为#{null}后,似乎工作正常。
<f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="#{null}" />