JSFのタグで<option>レンダリングされた要素に画像を表示することはできますか?<h:selectOneMenu>
<f:selectItems>データベースから取得したオプションを生成するために使用します。しかし、表示したいコンテンツ<h:selectOneMenu>は、各アイテムに関連付けられた画像です。
どうすればそれを達成できますか?
JSFのタグで<option>レンダリングされた要素に画像を表示することはできますか?<h:selectOneMenu>
<f:selectItems>データベースから取得したオプションを生成するために使用します。しかし、表示したいコンテンツ<h:selectOneMenu>は、各アイテムに関連付けられた画像です。
どうすればそれを達成できますか?
<h:selectOneMenu>JSF の/ <f:selectItem>/内に画像を埋め込むことはでき<f:selectItems>ません。その目的のために設計された属性がないためです。さらに、そのためのクロスブラウザー互換ソリューションはほとんどありません。
PrimeFaces のようなコンポーネント ライブラリを使用することもできますが。基本的に/をいくつかの HTML/jQuery マジックで<p:selectOneMenu>ラップするコンポーネントを備えているため、「代替」が画面に表示されます。使用例は、ショーケースの例にあります。それを暗唱するには:<select><option>
<p:selectOneMenu value="#{autoCompleteBean.selectedPlayer2}" converter="player" var="p">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{autoCompleteBean.players}" var="player" itemLabel="#{player.name}" itemValue="#{player}"/>
<p:column>
<p:graphicImage value="/images/barca/#{p.photo}" width="40" height="50"/>
</p:column>
<p:column>
#{p.name} - #{p.number}
</p:column>
</p:selectOneMenu>
もちろん、別の方法で画像を読み込むこともできます。