我想在<h:selectOneMenu />
中显示<h:outputText />
所选值的标签。
我有以下下拉列表,我在其中获得所选值。
<h:column>
<h:selectOneMenu value="#{bean.selectedCity}">
<f:selectItem itemValue="1" itemLabel="NewYork"/>
<f:selectItem itemValue="2" itemLabel="Washington"/>
</h:selectOneMenu>
</h:column>
我想显示所选的值,但以下内容仅显示1
或2
。
<h:outputText value="#{bean.selectedCity}" />
我想显示标签NewYork
或Washington
。我怎么能这样做?
答案 0 :(得分:1)
更新#2 :我们最终到达某处(我删除了整个旧答案,如果您想查看它,请查看编辑历史记录反正)。
您只需在模型中的某个位置维护类似Map<Long, String> cities
的内容,然后按如下方式使用它:
<h:outputText value="#{bean.cities[bean.selectedCity]}" />
这基本上会显示bean.getCities().get(bean.getSelectedCity());
。你甚至可以重用<f:selectItems>
的地图,这样你就不需要在两个地方维护它。
答案 1 :(得分:0)
如果要查看其值,则需要使用禁用属性和displayClass
您可以将 t:selectOneMenu 标记用于 diplayValueOnly =“true”属性
<h:selectOneMenu disable="true">
<f:selectItem id="si1" itemLabel="Thums Up" itemValue="11" />
</h:selectOneMenu>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<t:selectOneMenu displayValueOnly="true">
<f:selectItem id="si1" itemLabel="Thums Up" itemValue="11" />
</t:selectOneMenu>