<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;
和类别类:
public class Category {
private int categoryID;
private String name;