从查看此代码使其看起来像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中的每个项目并在类别一侧分配一个带有一个问题实例的arraylist?
答案 0 :(得分:0)
我是否需要制作自己的转换器以使其正常工作?
我认为您必须创建自己的Converter
。 JSF无法自动将字符串转换为Entity
对象。
我是否需要遍历该arraylist中的每个项目,并在类别一侧指定一个带有一个问题实例的arraylist?
如果您成功创建了Converter
可以将String
输入转换为相应的Category
对象,则<h:selectManyMenu>
将为您提供List<Category>
。然后我认为您可以将其直接分配给问题的categories
属性。您仍然需要遍历categories
列表以将Question
实体绑定到每个实体。