【发布时间】:2012-12-13 21:13:03
【问题描述】:
我有一个<p:selectOneMenu> 可以从中选择项目的类别。默认情况下,菜单显示选中的someBean.selectedParty.categories 的第一个条目。但是该项目已经在someBean.selectedItem.category 有一个我想要显示/选择的当前类别。我怎样才能做到这一点?
<p:selectOneMenu value="#{someBean.selectedItem.category}" converter="omnifaces.SelectItemsConverter">
<f:selectItems value="#{someBean.selectedParty.categories}" var="category" itemLabel="#{category.name}"/>
</p:selectOneMenu>
【问题讨论】:
-
你的意思是在页面加载时,
someBean.selectedItem.category有一个默认值?还是选择后,当前值没有更新? -
第一个是正确的:之前选择了Item,它的其他属性都可以显示。但是对于类别,我想在包含所有可用类别的下拉菜单中显示当前值,并使用户能够将类别更改为当前类别。
-
对不起,如果这听起来很生硬,但我真的完全不知道你具体遇到了什么问题。到目前为止给出的代码绝对应该将
#{someBean.selectedItem.category}显示为当前选定的项目(如果它已被预设)。 SSCCE 和用例可能有助于理解您的具体问题。 -
@BalusC 感谢您推动我找到解决方案。在创建 SSCCE 时,我突然想到,在我的设置中,我必须再次覆盖 hashCode() 和 equals(),因为否则由于不同的哈希码,所选类别及其在列表中的对应项将不会被识别为相同。
标签: jsf-2 primefaces