質問

アイテムをアイスフェイス内のselectonemenuにリストから設定したいと思います。しかし、私が同じことをするとき、私は次のエラーを取得します:java.lang.classcastexception:javax.faces.model.selectitemにキャストすることはできません。

エンティティクラスです。

助けてください。

役に立ちましたか?

解決

作成と居住の通常の方法 selectOneMenu アイテムは次のとおりです。

private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter

public Bean() {
    selectItems = new ArrayList<SelectItem>();
    for (Entity entity : getYourEntities()) {
        selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
    }
}

ビューで以下を使用して(簡単にサブスタイトできます <h:<ice:):

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

aの代わりに String 値、任意の使用もできます Number (Integer, Long, JSFにはこれのためのコンバーターが組み込まれているためです。ただし、オブジェクト全体をアイテム値として使用する場合は、 Converter. 。これには詳細に説明されています この記事.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top