提交零时,JSF2值无效

时间:2013-07-24 15:55:44

标签: validation jsf-2.2

我已经阅读了很多关于这个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);
}

有什么想法吗?

1 个答案:

答案 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}" />