2011-12-15 26 views
0

JSFフレームワークとFaceletsの新機能です。問題が残っています。 <h:selectOneMenu>タグを使っていくつかのドロップダウンメニューを表示するページがあります。それぞれの選択で、私は<f:ajax>イベントを使用してajaxイベントを発生させました。すべて正常に動作しています。しかし、私の問題は、私が選択ボックスでオプション2を選択した場合、そのページを再読み込みすると、その選択ボックスがデフォルトでオプション2で選択されるということです。私はこれを必要としない。私はページの更新と一緒に選択ボックスをリロードする必要があります。この問題を解決するために私を助けてください。JSFコンポーネントがページのリフレッシュのために再ロードされない

答えて

1

選択ボックスには、バッキングBeanに設定されているオプションが表示されます(value属性のバインドは<h:selectOneMenu>です)。ページをリフレッシュした後の動作は、バッキングBeanのスコープによって異なります。セッションスコープの場合、ページリフレッシュはBeanをリセットしません。スコープを@ViewScopedに変更して、目的の動作を得ることができます。その後、Beanは完全な要求の後に再作成されます。

+0

お返事ありがとうございました。私のバッキングBeanはRequestScopedです。 – Krishna

+0

私が追加しなければならないもう一つの事は、のvalue属性を使ってバッキングBeanのプロパティをバインドしていることです。バッキングプロパティを設定するためにバインディング属性を使用したとき、このエラーが表示されます。 "'binding'属性には、UIComponentへのEL値バインディング参照が必要です。"申し訳ありませんが、今はJSFだけで始めました。だから、たくさんの疑問がある。 – Krishna

+0

@Krishnaこの目的のためにバインディング属性を使用することはできません。これは、値ではなくコンポーネントをバインドするために使用されます。 –

0

選択されたアクションの後にselectonemenu値で使用されるバッキングBeanプロパティにnullを設定するか、またはプロパティ取得メソッドでデフォルト値を設定します。

+0

ありがとうございました。私のリストは順序付けられたリストなので、同じ方法でドロップダウンボックスに表示します。実際には同じ順序で表示されますが、選択されたオプションはユーザーが選択した前のオプションになります。ページを更新した後でも、同じ状態を維持します。 – Krishna

関連する問題