rich:select在第一个项目上打开而不是选中

时间:2013-09-12 07:48:21

标签: jsf-2 richfaces

我的代码中有一个rich:select,如下所示:

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

3 个答案:

答案 0 :(得分:1)

h:selectOneMenu生成<select>can't be styled very well

<rich:select>没有这种功能,但可以通过Javascript实现,请查看my solution以查找类似的问题。

答案 1 :(得分:0)

我认为你需要使用rich的converter属性:select。有时我遇到同样的问题而且总是因为富有:选择失败映射到适当的值(在你的情况下它是三个)。

答案 2 :(得分:0)

<f:selectItems value="#{MyBean.objList}"/>更改为<f:selectItems value="#{MyBean.objList}" var="obj" itemValue="obj.id"/>

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