【发布时间】:2013-03-28 00:21:49
【问题描述】:
我浏览了很长时间寻找解决方案,但我没有找到合适的答案。 我正在使用 RichFaces 库开发 JSF Web 应用程序。应用程序支持不同的语言环境,用户可以通过从下拉列表中选择来更改它们。 我希望下拉列表中的项目在语言环境名称旁边有一个标志图标。
不幸的是,我找不到使用 JSF 的方法。
下拉列表的xthml代码是:
<h:panelGroup>
<h:form id="languageForm" prependId="false">
<h:outputText value="#{usermsg['locale.select.message']}" styleClass="userMessage"/>
<h:selectOneMenu id="dropdown" value="#{localeBean.selectedLocale}" onchange="submit()">
<f:selectItems value="#{localeBean.locales}" />
</h:selectOneMenu>
</h:form>
</h:panelGroup>
标志图标只需使用纯 HTML 和 JQuery 即可完成,就像我在这里找到的那样:http://www.ixtendo.com/polyglot-language-switcher-jquery-plugin/
要将图标放在下拉列表项中,我必须为列表中的每个元素应用 css,例如:
#en {
background-image: url(/resources/images/flags/gb.png);
}
#fr {
background-image: url(/resources/images/flags/fr.png);
}
这里的问题是:
- f:selectItems(以及 f:selectItem)似乎不支持样式属性。
- 我可以使用 javascript 将样式应用于标签,但我需要有标签的 ID,而 f:selectItem(似乎)也不允许这样做。
我想的另一件事是使用上面链接中提到的JQuery控件,但这里还有一个问题:如何将所选选项的值设置为JSF bean。换句话说,我可以通过 JQuery 或 Javascript 和纯 HTML 设置#{localeBean.selectedLocale} 吗?
我发现 PrimeFaces 有一个 selectOneMenu 控件,它允许添加图标http://www.primefaces.org/showcase/ui/selectOneMenu.jsf(名为“带有过滤器的内容”) 但我担心我们目前无法从 RichFaces 切换到 PrimeFaces。
感谢任何帮助。
【问题讨论】:
-
我建议您也可以在 Rich Faces 论坛中提出您的问题:community.jboss.org/en/richfaces 您想做的事情很简单,但肯定需要开发人员的帮助。得到答案后粘贴到此处。
-
您使用的是 JSF 1.2 + RichFaces 3.x 还是 JSF 2.x + RichFaces 4.x?
-
Luiggi Mendoza,我正在使用 JSF 2.x + RichFaces 4.x
-
Rodmar Conde,我问他们 bud 没有得到任何回复,所以我关闭了这个案例,因为我已经解决了这个问题。
标签: java jquery jsf selectonemenu