如何在<h:outputtext>中显示<h:selectonemenu>的选定值的标签?</h:outputtext> </h:selectonemenu>

时间:2011-01-26 05:58:11

标签: java jsf jsf-2

我想在<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>

我想显示所选的值,但以下内容仅显示12

<h:outputText value="#{bean.selectedCity}" />

我想显示标签NewYorkWashington。我怎么能这样做?

2 个答案:

答案 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>