1

タグ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}"/>もっと良いかもしれません

4

1 に答える 1

1

うわー、理由や方法はわかりませんが、からすべてのキー名を印刷してみると、アバターが存在しないことが返されますが、実際にアバターの値を取得できます。問題は解決しました^^"チェックするコードを削除するだけですcomponent.getAttributes()component.getAttributes().containsKey("avatar")キーが存在するかどうか

于 2012-11-14T09:21:50.620 に答える