2016-12-26 156 views
0

私はJSFで新しく、h:selectOneMenuにいくつか問題があります 国とコンボ2のコンボを持っています。コンボ1を変更するとコンボ2をリロードしたいのですが、デフォルト値(--select--)。 値をリロードするためにajaxイベントを使用していますが、正常に動作しますが、変更するたびにデフォルト値を残すことはできません。h:selectOneMenuのデフォルト値を選択

<h:selectOneMenu id="country" value="#{bean.country}"> 
    <f:selectItem itemValue="" itemLabel="--Select--" /> 
    <f:selectItems value="#{bean.getCountrys()}" /> 
    <f:ajax event="change" listener="#{bean.getCitys}" render="city" execute="@this"></f:ajax> 
</h:selectOneMenu> 
<h:selectOneMenu id="city" value="#{bean.city}"> 
    <f:selectItem itemValue="" itemLabel="--Select--" /> 
    <f:selectItems value="#{bean.getCitys()}" /> 
</h:selectOneMenu> 

編集: 回答のおかげで、それは問題を解決するためのdidnt。それをもっと明確にするための完全な例を教えてください(私の英語は悪いです...)。問題は、2番目の選択項目が最初の選択項目と同じ値を持つ場合です。 コンボ1フラグ: 1.Germany 2.Italy 3.Spain 4.France

Combo2色。 (選択されたドイツ) 1.黒色 2.赤色。 3.イエロー

私は黒を選択します!その後、イタリアの旗はイタリアの旗のように黒い色をしませ​​ん - 選択 - しかし、イタリアの旗が黒い色それ以外の値はリロードされますが、--select--に戻るのではなく、黒を選択したままにします。 今はもっと明確ですか?

答えて

0

ほとんどの場合、とnoSelectionOption="true"の属性を<f:selectItem>タグに追加してください。

<h:selectOneMenu id="city" value="#{bean.city}"> 
    <f:selectItem itemValue="#{null}" itemLabel="--Select--" noSelectionOption="true"/> 
    <f:selectItems value="#{bean.getCitys()}" /> 
</h:selectOneMenu> 

元々はhereと回答しました。

+0

応答に感謝しますが、問題を解決しませんでした。それをもっと明確にするための完全な例を教えてください(私の英語は悪いです...)。問題は、2番目の選択項目が最初の選択項目と同じ値を持つ場合です。 – user3285427

+0

@SebastianMotavita:重複が見つかった場合は、ほとんど同じ回答を作成して「ディスカッション」を分割する代わりに、その質問にフラグを立てることができます。 – Kukeltje

+0

@ user3285427:2番目のコンボ(これはBeanの都市値を持つかもしれない、おそらくString)を更新するとき、それは薄いです。以前の選択から保存されたbean.cityの値を取得しています。この場合は 'Black'です。おそらく、getCitysがあなたのように更新していない可能性があります。 –

関連する問題