我对标签 h:selectOneMenu 有点麻烦,我只想在选项中添加一些背景图片,例如用户头像。
遵循h:selectOneMenu 中的样式选项 - by 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>
它适用于高度、宽度和键,但使用 avatar(或任何包含带有 #{} 表达式的值的属性)服务器 bean 无法获取它。
尝试打印出所有键名:
Iterator itr = component.getAttributes().keySet().iterator();
while(itr.hasNext()){
System.out.println(itr.next().toString());
}
没有名称为 avatar 的键:
--------------------------------
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:事实上,如果我能进入myController.listOfUsers
我<f:selectItems value="#{myController.listOfUsers}" var="item" itemLabel="#{item.username}" itemValue="#{item.userid}"/>
的自定义渲染bean,它可能会更好