0
<h:outputText value="Category: " />
<p:selectOneMenu value="#{categoryController.selectedCategory}">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{categoryController.categories}" var="category" itemLabel="#{category.name}" itemValue="#{category.categoryID}"/>
</p:selectOneMenu>

ユーザーがクイズの質問を入力できるフォームがあります。カテゴリも入力可能で、1つのカテゴリに多くの問題があります。

最初は、フォームにカテゴリ ID を入力できました。ここで、もう少し洗練されたものにするために、selectOneMenu に選択対象のカテゴリを設定します。メニューは問題なく表示されます。

問題: このリストからカテゴリを選択することは、その下にある ID を選択することを意味する必要があるため、質問エンティティは常に行われているように正しいカテゴリ ID を参照します。私は属性という印象を受けました

itemValue="#{category.categoryID}

これを許可する必要があります。しかし、カテゴリが選択されたときに質問エンティティがデータベースに追加されたように表示されないため、これは機能していないようです。私も試しました

questionController.newQuestion.categoryID

newQuestion はフォームのテキスト フィールドで機能しているためです。しかし、この方法ではまだ望ましい結果が得られていないようです。

使用すべき属性は itemValue ですか? そうでない場合は、どれですか?

アップデート:

まだかなり行き詰まっていますが、カテゴリがどのように実装されているかを示すコードを次に示します。

カテゴリ コントローラ クラス:

public class CategoryController extends BasePageController {

@Autowired
private ICategoryRepository categoryRepository;

private List<Category> categories;

private Category newCategory = new Category();

private Category selectedCategory = new Category();

private Category[] selectedCategories;

および Category クラス:

public class Category {

private int categoryID;
private String name;
4

1 に答える 1