JSF SelectItem异常

时间:2012-02-29 03:20:56

标签: exception jsf

我正在尝试将一个SelectItem列表提供给selectOneMenu,我得到了这个例外:

[Ljavax.faces.model.SelectItem; cannot be cast to javax.faces.model.SelectItem

对我来说这看起来很奇怪。这是页面中的代码:

 <h:selectOneMenu value="#{user.name}">
                <f:selectItem value="#{user.names}" />  
 </h:selectOneMenu>

在用户类中:

import javax.faces.model.SelectItem;
private final SelectItem[] users = {new SelectItem("Jack"),new SelectItem("Max")};

1 个答案:

答案 0 :(得分:1)

<f:selectItem>表示单个SelectItem,但您的EL表达式会为其提供一个SelectItems数组。您的意思是<f:selectItems>吗?

此外,由于JSF 2.x f:selectItems能够使用普通的Java Bean,因为official docs显示:

<h:selectOneListbox size="1" id="escape02" value="#{select05NoSelection.initialCollectionValues}">
  <f:selectItems value="#{select05NoSelection.hobbitList}"
                 var="n"
                 itemValue="#{n}"
                 itemLabel="#{n.bio}"
                 itemDescription="#{n.description}"
                 itemDisabled="#{n.disabled}"
                 itemLabelEscaped="true"
                 noSelectionValue="#{select05NoSelection.hobbitList[0]}"/>
</h:selectOneListbox> 

因此不再需要在辅助bean中创建SelectItems。