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>
もちろん、別の方法で画像を読み込むこともできます。