CustomContent在Primefaces selectOneMenu用于没有持续对象(Cus

2019-09-28 02:22发布

我现在用的是Primefaces selectOneMenu用于( http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsf )与“自定义内容”版本的演示说明。

的问题是,如果该字段,它被绑定到下拉字段的实际值,是作为对象的类型的列只工作value

下面的工作(如果Bean.field是类型的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字段存在。

有没有办法处理这个的好方法?

Answer 1:

使用转换器所选择的菜单项(bt.value)的值转换成由所述背衬bean方法绑到p预期:selectOneMenu用于(bean.field)。

<p:selectOneMenu value="#{bean.field}" var="x" converter="yourconverterid">


文章来源: CustomContent in Primefaces selectOneMenu without persisting object