我的代码中有一个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 样式未应用于它。
答案 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类,那么在其中实现hashCode
和equals
方法