1

デモで説明されているように、「カスタムコンテンツ」バージョンで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>

最初のバージョンではxyz2 番目の列として表示されますが、2 番目のバージョンでは表示されません。私が抱えている問題は、フィールドSelectObjectの文字列をそこに保存することもできますが、データベースにタイプのオブジェクトを保存する必要があることです。value

これを処理する良い方法はありますか?

4

1 に答える 1

0

Converter を使用して、選択されたメニュー項目 (bt.value) の値を、p:selectOneMenu (bean.field) に結び付けられたバッキング Bean メソッドによって期待される値に変換します。

<p:selectOneMenu value="#{bean.field}" var="x" converter="yourconverterid">
于 2012-07-09T15:30:37.083 に答える