Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception JSF SelectItem异常_Exception_Jsf - Fatal编程技术网

Exception JSF SelectItem异常

Exception JSF SelectItem异常,exception,jsf,Exception,Jsf,我正在尝试将SelectItems列表提供给selectOneMenu,但出现以下异常: [Ljavax.faces.model.SelectItem; cannot be cast to javax.faces.model.SelectItem 我觉得这有点奇怪。这是页面中的代码: <h:selectOneMenu value="#{user.name}"> <f:selectItem value="#{user.names}" />

我正在尝试将SelectItems列表提供给
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>
表示单个
SelectItem
,但EL表达式为其提供了一个
SelectItems
数组。你是说

另外,由于JSF 2.x
f:selectItems
非常能够使用普通Java bean,如下所示:



因此,不再需要在支持bean中创建SelectItems。

如果改用
怎么办?在我看来,
user.names
包含一个名称列表。异常消息并不奇怪。
[L
部分意味着它是一个对象数组。您不能将
SelectItem[]
转换为
SelectItem
。谢谢。我是JSF新手,所以我没有意识到这一点。
import javax.faces.model.SelectItem;
private final SelectItem[] users = {new SelectItem("Jack"),new SelectItem("Max")};
<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>