【问题标题】:How to display the label of a selected value of a <h:selectOneMenu> in a <h:outputText>?如何在 <h:outputText> 中显示 <h:selectOneMenu> 的选定值的标签?
【发布时间】:2011-06-15 15:57:45
【问题描述】:

我想在&lt;h:outputText /&gt; 中显示&lt;h:selectOneMenu /&gt; 的选定值的标签。

我在下面的下拉列表中获取所选值。

<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。我该怎么做?

【问题讨论】:

  • 我真的不明白你。发布一个模型或一些纯 HTML 代码,说明结果的外观。
  • 请提供详细问题。
  • 我只想查看 的值。我希望 显示像 .

标签: java jsf jsf-2


【解决方案1】:

如果要查看它的值,需要使用disable属性和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>

【讨论】:

  • 有一个属性叫做'disabled' :) 但它总是显示为&lt;h:selectOneMenu&gt;。也许 displayValueOnly 属性很有用,但我使用的是 primefaces,而不是 Myfaces。
  • 在 primefaces 中,我认为 myfaces 中没有像 displayValueOnly 这样有用的属性。
【解决方案2】:

更新 #2 基于新的编辑和 cmets:啊,我们终于到达了某个地方(我删除了整个旧答案,如果你想查看它,请检查编辑历史无论如何)。

您只需要在模型中的某处维护Map&lt;Long, String&gt; cities 之类的内容,然后按如下方式使用它:

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

这将基本上显示bean.getCities().get(bean.getSelectedCity());。您甚至可以重复使用 &lt;f:selectItems&gt; 的地图,这样您就不需要在两个地方维护它。

【讨论】:

  • 如果使用&lt;h:outputText value="NewYork" /&gt;,那真的很不方便。我从数据库中获取值“1”,但我想将其显示为“NewYork”。我觉得&lt;h:selectOneMenu&gt;一定是最好的选择。
  • 当我使用rendered='false'时,看不到&lt;h:outputText&gt;的值,什么都没有。
  • 真的,这也正是rendered="false" 所做的:) 当使用rendered="true" 时,它会显示出来。但算了吧,你的具体问题现在终于清楚了。查看答案更新。
  • 非常感谢 BalusC。这是一个很好的解决方案。现在我会试试看:)
  • 好的,很高兴编辑您的问题,以更好地反映具体问题。
猜你喜欢
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多