css - selectonemenu jsf 上的属性

标签 css jsf-2 liferay custom-component renderer

标签h:selectOneMenu有点问题,我只想给选项添加一些背景图片,比如用户头像。

关注styling options in 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>

它在高度、宽度和键上工作得很好,但是对于头像(或任何包含带有 #{} 表达式的值的属性)服务器 bean 无法获取它。

尝试打印出所有键名:

Iterator itr = component.getAttributes().keySet().iterator();
        while(itr.hasNext()){
            System.out.println(itr.next().toString());
        }

没有名称为头像的 key :

--------------------------------
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 的自定义标签库 :-?

ps2:事实上,如果我能得到 myController.listOfUsers<f:selectItems value="#{myController.listOfUsers}" var="item" itemLabel="#{item.username}" itemValue="#{item.userid}"/>在我的自定义渲染 bean 中,它可能会更好

最佳答案

Woof,我不知道为什么或如何,但是当尝试打印出 component.getAttributes() 中的所有键名时,还有 component.getAttributes().containsKey("avatar ") 返回头像不存在,但我真的可以得到头像值,我的问题解决了^^"只需删除检查 key 是否存在的代码

关于css - selectonemenu jsf 上的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13374584/

相关文章:

html - css 旋转变形后的对象

css - Webkit:CSS3 2D 变换 Scale + cubic bezier 问题(当参数 > 1 时)

jsf-2 - 混合JSF标记和HTML

java - 如何在 JSF2.0 中使用 RichFaces4.0? RichFaces4.0如何配置View Handler?

liferay - 从 liferay 6.1.2 迁移到 Liferay 7

java - 解密liferay密码

javascript - 如何使用 jQuery 在一个 div 中查找某个字符串,然后将特定样式应用于另一个 div(如果存在)?

css - 基于 body 类嵌套 CSS

jsf-2 - java.lang.IllegalStateException : getOutputStream() has already been called for this response when calling JasperReport

java - Liferay - 图片库