デモで説明されているように、「カスタムコンテンツ」バージョンで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
2 番目の列として表示されますが、2 番目のバージョンでは表示されません。私が抱えている問題は、フィールドSelectObject
の文字列をそこに保存することもできますが、データベースにタイプのオブジェクトを保存する必要があることです。value
これを処理する良い方法はありますか?