Jsf 2 丰富:选择在第一个项目上打开,而不是在选定的项目上打开

Jsf 2 丰富:选择在第一个项目上打开,而不是在选定的项目上打开,jsf-2,richfaces,Jsf 2,Richfaces,我有一个rich:在我的代码中选择,如下所示: <rich:select style="width: 50" enableManualInput=false value="#{MyBean.Obj.id}"> <f:selectItems value="#{MyBean.objList}"/> </rich:select> 在我的页面上,如果打开此下拉列表,它将显示下拉列表中的第一个元素,而不是value属性指定的元素。如果我现在选择一个元素,然

我有一个
rich:在我的代码中选择
,如下所示:

<rich:select style="width: 50" enableManualInput=false value="#{MyBean.Obj.id}">
    <f:selectItems value="#{MyBean.objList}"/>
</rich:select>

在我的页面上,如果打开此下拉列表,它将显示下拉列表中的第一个元素,而不是value属性指定的元素。如果我现在选择一个元素,然后再次打开它,它仍然会转到第一个元素,而不是选定的元素

但是,如果我将
rich:select
替换为具有所有相同属性的
h:selectOneMenu
,则效果良好。我无法使用
h:selectOneMenu
,因为richfaces样式未应用于它


有没有其他方法可以让我变得富有:选择工作或将richfaces样式应用于h:selectOneMenu?
h:selectOneMenu
生成


没有那种功能,但可以通过Javascript实现,看看类似的问题。

我认为您需要使用rich:select的converter属性。有时我也会遇到同样的问题,这通常是因为rich:选择fail映射到适当的值(在您的情况下是三个)。

更改为


如果您的id不是本机Java类,那么在其中实现
hashCode
equals
方法

它只显示一个元素而不是整个列表?不,它应该在下拉列表中显示整个列表。问题是如果列表包含一、二、三、四,五和值=三。列表打开时,就好像选择了一个而不是三个。换句话说,当打开时,它总是显示选定的第一个元素。如果不清楚,很抱歉。这并不能解释问题的这一部分:“如果我将rich:select替换为具有所有相同属性的h:selectOneMenu,它工作正常”