タグh:selectOneMenuに少し問題があります。ユーザーのアバターなど、オプションに背景画像を追加したいだけです。
h:selectOneMenuのスタイリングオプションに従ってください-balusCによる
私は独自のスタイルのcssでオプションをレンダリングしようとしました。
<h:selectOneMenu id="dropListUser"
value="#{myController.myUserObject.userid}">
<f:attribute name="avatar" value="#{true}"></f:attribute>
<f:attribute name="key" value="somthing"></f:attribute>
<f:attribute name="height" value="32"></f:attribute>
<f:attribute name="width" value="32"></f:attribute>
<f:selectItems value="#{myController.listOfUsers}" var="item" itemLabel="#{item.username}" itemValue="#{item.userid}"/>
</h:selectOneMenu>
高さ、幅、キーでうまく機能しますが、アバター(または任意の属性に#{}式の値が含まれている)では、サーバーBeanはそれを取得できませんでした。
すべてのキー名を印刷してみてください:
Iterator itr = component.getAttributes().keySet().iterator();
while(itr.hasNext()){
System.out.println(itr.next().toString());
}
アバターという名前のキーはありません:
--------------------------------
height
javax.faces.component.VIEW_LOCATION_KEY
com.sun.faces.facelets.MARK_ID
key
width
width: 32 height: 32 style null?: true
--------------------------------
ps:ちなみに、h:selectOneMenuを拡張するカスタムtaglibを作成する方法を知っている人はいますか:-?
ps2:実際、カスタムレンダリングBeanに参加できればmyController.listOfUsers
、<f:selectItems value="#{myController.listOfUsers}" var="item" itemLabel="#{item.username}" itemValue="#{item.userid}"/>
もっと良いかもしれません