2012-01-06 4 views
0

このコードは、itemValueのように見えるソースコードを見ると、オブジェクトtoString()メソッドに基づいて値を生成します。だからbean.question.categoriesカテゴリを含むarraylistすることはできません....少なくともそれは動作しません。これを動作させるために私自身のコンバータを作る必要がありますか?このためにカスタムコンバータが必要ですか?

<h:selectManyMenu value="#{bean.question.categories}" id="questionCategories"> 
    <f:selectItems value="#{categoryValuesManager.categories}" var="category" 
        itemValue="#{category}" itemLabel="#{category.description}"/> 
</h:selectManyMenu> 

質問エンティティにはカテゴリエンティティとの双方向多対多関係もあり、私には頭があります! ;新しい質問インスタンスを作成するときに、そのインスタンスのcategoriesプロパティがnullの場合は正しくなりますか?だから私はそれに空のArrayList<Category>を割り当てる必要があります。次に、そのarraylistの各項目をループし、カテゴリ側の1つの質問インスタンスにarraylistを割り当てる必要がありますか?

+0

'bean.question.categories' ...' categories'とは何ですか?それはリストですか?リストにすることはできません。 –

+0

はい、それはリストですか?どうしてそんなことができないの? – LuckyLuke

+0

ああ、申し訳ありません、それは選択肢の多いです、私は選択肢について考えていました。 –

答えて

0

これを動作させるには自分のコンバータを作る必要がありますか?

私は自分でConverterを作成する必要があると思います。 JSFは文字列をEntityオブジェクトに自動的に変換することはできません。

私はそのarraylistの各項目をループし、カテゴリ側の1つの質問インスタンスもarraylistを割り当てる必要がありますか?

あなたは成功し、対応するCategoryオブジェクトにString入力を変換することができConverterを作成した場合は、ご<h:selectManyMenu>はあなたにList<Category>を与えるだろう。次に、質問のcategoriesプロパティに直接割り当てることができると思います。あなたはまだリストをループして、Questionエンティティをそれぞれにバインドする必要があります。

+0

しかし、双方向であるため、カテゴリのリストをループして質問を割り当てる必要がありますか? – LuckyLuke

+0

はい、あなたはそれをしなければなりません。 –

関連する問題