あなたは、このための追加のバッキングBeanのコードが必要だと思う理由は、私はよく分かりません。バッキングBeanにはすでに必要な値がすべてあります。あなたの問題は、それらの価値の提示にもっとあります。それに応じてビューコードを書くだけで、希望のフォーマットで表示することができます。おそらくあなたはそれを難しい方法と考えていたでしょう。
選択ブールチェックボックスの代わりに、たとえば「はい」または「いいえ」の値を表示できます。
<h:selectBooleanCheckbox value="#{bean.checked}" rendered="#{bean.edit}" />
<h:outputText value="#{bean.checked ? 'Yes' : 'No'}" rendered="#{not bean.edit}" />
メニューまたはラジオを選択する代わりに、値を出力テキストに表示するだけで済みます。代わりに選択し、多くのリストボックス/チェックボックスの
<h:selectOneMenu value="#{bean.selectedItem}" rendered="#{bean.edit}">
<f:selectItems value="#{data.availableItems}" />
</h:selectOneMenu>
<h:outputText value="#{bean.selectedItem}" rendered="#{not bean.edit}" />
、あなただけの、たとえばループでカンマ区切りのすべての値を表示することができます。
<h:selectManyListbox value="#{bean.selectedItems}" rendered="#{bean.edit}">
<f:selectItems value="#{data.availableItems}" />
</h:selectManyListbox>
<h:panelGroup rendered="#{not bean.edit}">
<ui:repeat value="#{bean.selectedItems}" var="selectedItem" varStatus="loop">
#{selectedItem}#{not loop.last ? ', ' : ''}
</ui:repeat>
</h:panelGroup>
ボイラープレートとコードの繰り返しを最小限に抑えるために、すべてをタグファイルまたはコンポジットにラップすることができます。
コントロールのラベルが値と等しくない場合は、それほど単純ではありません。 – Sudhir
たとえば、選択ブールチェックボックスの場合、ユーザに表示される値は「男性」と「女性」です。選択時に、ユーザーの選択に基づいてデータベースに「M」または「F」が格納されます。この場合、ビューモードで、 'Male'または 'Female'のいずれかを表示するには、追加のバッキングBeanコードを記述して、データベース値をユーザーが表示可能なテキストに変換する必要があります。同じように他のコントロールの問題もあります。上記のアプローチが機能するためには、コントロールのラベルはvalueと等しくなければならず、ほとんどの場合そうではありません。私が何かを見逃している場合は、私に知らせてください。 – Sudhir
これらの値はすでに ''の後ろのデータにあります。それに応じてアクセスして印刷してください。将来的には、あなたがそのコメントのように、すぐに質問をしてください。 –
BalusC