PMB*_*MBG 2 jsf selectonemenu primefaces
我正在尝试实现一个高级selectOneMenu(PrimeFaces) 以根据其标志图标选择语言环境。图标显示在列表中,但不显示所选项目(展示同样发生)。我怎么能这样做?
<p:selectOneMenu id="mySOMId" value="#{localeBean.locale}" var="mySOMVar" converter="#{localeConverter}" >
<f:selectItems
value="#{myBean.locales}"
var="localeSIVar"
itemLabel="#{localeSIVar.language}"
itemValue="#{localeSIVar}" />
<p:column style="text-align: center;" >
<h:graphicImage library="default" height="20" name="img/#{mySOMVar.language}.svg" />
</p:column>
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
我可以看到它f:selectItems有一个itemLabelEscaped属性,我可以用它在 中输出<img>标签itemLabel,但我不知道我会在它的src.
谢谢
您可以使用#{resource['library:name']}语法打印资源的 URL,如如何在 Facelets 模板中引用 CSS/JS/图像资源中所述?
因此,鉴于您实际上想使用
<h:graphicImage library="default" height="20" name="img/#{localeSIVar.language}.svg" />
Run Code Online (Sandbox Code Playgroud)
在 中itemLabel,并且该itemLabelEscaped属性<f:selectItems>设置为true,那么您可以使用以下语法作为 的值itemLabel:
itemLabel="<img height='20' src='#{resource['default:img/' += localeSIVar.language += '.svg']}' />"
Run Code Online (Sandbox Code Playgroud)
笔记:
"这些单引号代替。+=操作者是因为EL 3.0新; 如果您仍在使用较旧的 EL 版本,请前往如何在 EL 中连接字符串?用于在 EL 中连接字符串的替代方法(然后将其作为变量重用)。| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |