の最初の配列で値が変更された場合は、SelectItem[]
配列を2番目のSelectOneMenu
に変更したいとします。それは可能ですか?値が別の値で変更された場合、SelectOneMenuでリストを変更する方法は?
答えて
私はこれを理解しましたが、JSFだけでなくRichFacesのAJAX機能も使用しました。ちょうど私の最初のselectOneMenuにタグを追加し、それが動作します:)
<a4j:support event="onchange" action="#{bean.onChange}"
reRender="otherSelectOneMenuID"/>
とにかく応答をありがとう!
値変更リスナーを最初のselectOneMenuにバインドすると可能です。
ValueChangeEventから新しい値を取得し、それに応じてリストを更新します。 JSFページに更新されたリストが表示されます。
希望は意味があります!
私はそれを試してみます。ありがとう! –
ValueChangeEventは、ページを送信したときにのみ呼び出されるようです:\ –
私のプロジェクトにはrichFacesもありますので、ここでAJAXの機能を使用する必要がありますか? –
よく私はa4jを使用していました。
<code>
//JSF
<h:outputLabel value="First selectOneMenu: "/>
<h:selectOneMenu value="#{yourBackingBean.selectedItem}">
<f:converter converterId="defaultConverter"/>
<f:selectItem id="df01" itemLabel="Item01" itemValue="1" />
<f:selectItem id="df02" itemLabel="Item02" itemValue="2" />
<f:selectItem id="df03" itemLabel="Item03" itemValue="3" />
<a4j:support event="onchange" reRender="secondSelectOneMenu"/> //secondSelectOneMenu is the id of the dropdown you want to change
</h:selectOneMenu>
<h:outputLabel value="Second selectOneMenu: "/>
<h:selectOneMenu value="#{yourBackingBean.attributeToStoreSelectedValue}" id="secondSelectOneMenu">
<f:converter converterId="defaultConverter"/>
<f:selectItem id="df00" itemLabel="Select" itemValue="0" /> //Default value
<f:selectItems value="#{yourBackingBean.returnByChoice}" />
</h:selectOneMenu>
//Converter
public class DefaultConverter implements Converter {
public Object getAsObject(FacesContext ctx, UIComponent component, String value) {
return value;
}
public String getAsString(FacesContext ctx, UIComponent component, Object value) {
String label = "";
if (value != null) {
label = value.toString();
}
return label;
}
}
//Backing Bean Sample
public List<SelectItem> returnByChoice() { //it must return a list of SelectItems so it can be displayed on the jsf page
String id = (String) getSelectedItem(); //this is the value chosen from the first dropDownMenu wich selectedItem is the attribute onthe binding of the first dropDownMenu.
ArrayList<SelectItem> arrItems = new ArrayList<SelectItem>();
if (id != null) {
List<YourClass> yourObjectList = yourDao.findAllItemsFromType(new Integer(id));
Iterator<YourClass> iterator = yourObjectList.iterator();
String tempName = "";
String tempId = "";
YourClass tempYourObject = null;
while (iterator.hasNext()) {
tempYourObject = iterator.next();
tempId = String.valueOf(tempYourObject.getId());
tempName = tempYourObject.getName();
arrItems.add(new SelectItem(tempId, tempName));
}
}
return arrProfiles;
}
</code>
- 1. 値が変更された場合にmysql dbを更新し、別の値を変更してください
- 2. 値が変更されない場合のbackbone.jsの変更
- 3. 値が変更された場合、ドロップダウンをリセットする方法は?
- 4. タブページがC#ブラウザで変更された場合のfaviconの変更方法は?
- 5. 入力値がjQueryで何か変更された場合
- 6. Laravel値が変更された場合にのみmysqlの値を更新する方法
- 7. 値が変更された場合にのみPHPでMySQLデータベースを更新
- 8. jquery datatable値をドロップダウン値の変更で変更する方法
- 9. チェックボックスがチェックされている場合、値を変更する
- 10. エントリ値が変更されたときのラベル値の変更
- 11. コールコンバーターターゲットプロパティ値が変更されていない場合でも
- 12. テーブルが既に描画されている場合の値の変更方法
- 13. マージ - 値が変更された場合のみ更新します。
- 14. プリミティブデータ型の値の変更をリッスンする方法(この場合はブール値)
- 15. ReactJS:変数が値を変更した場合のリロードコンポーネント
- 16. テキストが変更された場合のテキスト値とラベル値の比較とチェックの方法は?
- 17. 複数の値でスパークされたDataFrameの値を変更する方法
- 18. ComboBoxのSelectedIndexがViewModelプロパティのみで変更された場合のTextBoxの値の変更
- 19. 入力の値がプログラムで変更された場合の変更イベントのトリガーReact
- 20. SELECT値が変更された場合にPOSTでメールを送信
- 21. 値が変更されていない場合のCHANGE_TRACKING_IS_COLUMN_IN_MASK
- 22. ファイルが変更された場合の解決方法?
- 23. Angular2:編集ページでモデル値が変更された場合、保存ボタンを有効にする方法
- 24. 配列キー数値を別の値に変更する方法
- 25. 別の値がPandasのリストと一致する場合、セル値を更新
- 26. スピナーが変更された場合
- 27. ファイルが変更された場合、トリガーシェルスクリプト
- 28. リストの参照が変更された場合でもngForの要素を再利用する方法は?
- 29. プロトタイプ関数で変更された数値変数の更新
- 30. 各ビューで変更される場合と変更されない場合があるグローバル変数Laravel 5.2
あなたはそれが働いてうれしいです。 RichFacesは、標準のJSFよりも簡単に処理できます。 –