2012-02-29 10 views
0

私は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> 

そして、Userクラス内:

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

代わりに ''を使用するとどうなりますか? 'user.names'には名前のリストが含まれているようです。 – Lion

+1

例外メッセージが奇妙ではありません。 '[L]はオブジェクト配列であることを意味します。 'SelectItem []'を 'SelectItem'にキャストすることはできません。 – BalusC

+0

ありがとう。私はJSFの新機能ですので、私はそれを認識しませんでした。 – Giannis

答えて

1

<f:selectItem>は、単一SelectItemを表すが、あなたのEL-expressionはそれをSelectItemsの配列を供給します。 <f:selectItems>を意味しましたか?また

、JSF 2.xのf:selectItemsofficial docsショーとして、通常のJavaビーンズでの作業の非常に可能ではありませんので、:

<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で選択項目を作成することはもはや必要があります。

関連する問題