2011-01-26 7 views
0

選択した値<h:selectOneMenu />のラベルを<h:outputText />に表示したいとします。<h:outputText>に<h:selectOneMenu>の選択された値のラベルを表示する方法は?

私は以下のドロップダウンリストから選択した値を取得します。

<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を表示したいです。これどうやってするの?

+1

私は本当にあなたを取得しません。モックアップや、結果がどのように表示されるかについてのプレーンなHTMLコードを投稿してください。 – BalusC

+0

詳細な質問をしてください。 – Krishna

+0

私はの値を見たいだけです。私はのように表示されることを望みます。 –

答えて

1

更新#2新しい編集とコメントに基づいて:ah we finallyどこかで取得する古い回答、とにかくそれを見たい場合は、編集履歴をチェックしてください)。

あなたは自分のモデルにMap<Long, String> citiesどこかのようなものを維持し、その後、次のようにそれを使用する必要があります。

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

これは基本的にbean.getCities().get(bean.getSelectedCity());が表示されます。 <f:selectItems>のマップを再利用して、2か所で管理する必要はありません。

+0

''を使用すると、それは本当に便利ではありません。私はデータベースから値 '1'を取得しますが、私は 'NewYork'としてそれを表示したいと思います。私は ''が最良の選択でなければならないと考えます。 –

+0

rendered = 'false'を使用すると、 ''の値を見ることができません。何もありません。 –

+0

真に、 'rendered =" false "'とはまったく同じです:) 'rendered =" true "'を使うと、それが表示されます。しかし、それを忘れて、具体的な問題は今や最終的にはっきりしています。回答の更新を参照してください。 – BalusC

0

あなたは、その値を表示したい場合は、使用する必要が無効財産とdisplayClass

あなたはトン使用することができます: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> 
でselectOneMenu
タグを
+0

'disabled'という属性があります:)しかし、常にとして表示されます。たぶんdisplayValueOnly属性は便利ですが、私はMyfaceではなく、Primefaceを使用しています。 –

+1

プライムフェイスでは、myfaceの 'displayValueOnly'と同じような属性はないと思います。 –

関連する問題