JSF的SelectItem例外
问题描述:
我想给SelectItems的列表到selectOneMenu
和我得到这个异常:JSF的SelectItem例外
[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")};
答
<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。
如果你使用' '而不是?在我看来'user.names'包含一个名称列表。 –
Lion
2012-02-29 03:37:20
异常消息并不奇怪。 '[L'部分意味着它是一个对象数组。您不能将'SelectItem []'强制转换为'SelectItem'。 – BalusC 2012-02-29 10:49:09
谢谢你。我是JSF的新手,所以我没有认识到这一点。 – Giannis 2012-03-01 11:36:58