我正在使用 Primefaces SelectOneMenu ( http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsf ) 和演示中描述的“自定义内容”版本。
问题是,只有当绑定到下拉字段的字段的实际值是用作value
.
以下作品(如果Bean.field
是 type SelectObject
):
<p:selectOneMenu value="#{bean.field}"
var="x">
<f:selectItems
value="#{valuesBean.getSelectItems()}" var="bt"
itemLabel="#{bt.label}" itemValue="#{bt}" />
<p:column>
<h:outputText
value="#{x.value}" />
</p:column>
<p:column>
<h:outputText value="xyz" />
</p:column>
</p:selectOneMenu>
以下不起作用(Bean.field
类型String
):
<p:selectOneMenu value="#{bean.field}"
var="x">
<f:selectItems
value="#{valuesBean.getSelectItems()}" var="bt"
itemLabel="#{bt.label}" itemValue="#{bt.value}" />
<p:column>
<h:outputText
value="#{x.value}" />
</p:column>
<p:column>
<h:outputText value="xyz" />
</p:column>
</p:selectOneMenu>
在第一个版本中,xyz
显示为第二列,在第二个版本中则不是。我遇到的问题是,现在我需要SelectObject
在数据库中保存一个类型的对象,尽管我也可以将value
字段的字符串保存在那里。
有没有很好的方法来处理这个?