<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;