Jsf:验证错误值对SelectOneMenu无效

ccp*_*123 7 jsf

我有一个selectMenu,在处理程序中定义的(SelectItems)列表如下

Handler { List(SelectItem) stateList; State state; }
State { String stateCd; }
Run Code Online (Sandbox Code Playgroud)

JSF代码::

<h:selectOneMenu value="#{state.stateCode}">
  <f:selectItems value="#{handler.stateList}">
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

现在我的列表在requestScope中,我看到提交的值是字符串并出现在列表中但我仍然得到"验证错误:值无效".可以有人协助.

Bal*_*usC 32

验证错误:值无效

这意味着所选项目与列表中的任何可用项目都不匹配.也就是说,stateCode.equals(stateList.get(i))从来没有返回true过任何物品.

如果stateList在验证阶段为空,或者equals()未(正确)实现值类型的方法,则会发生这种情况.

也可以看看:

  • 您需要在bean构造期间准备列表或`@ PostConstruct`.我不知道`onPreRender()`做了什么,这不是标准的JSF,但听起来好像它在渲染响应阶段正在做的工作,那时已经太晚了. (2认同)