2012-04-12 18 views
0

は、私は、Ajaxを使用して、selectOneListを更新selectOneRadioを持っています。 ユーザーがすべての情報を入力して送信すると、(今はいっぱいになった)CDオブジェクトが保存され、正常に動作します。JSF Ajaxの更新動作

問題は、ユーザーがラジオを変更したときに設定されているということです()。これは、ユーザーが「バックブラウザ」をクリックすることができ、ラジオが選択され、他のフィールドが空になる、非常に悪い動作!

どのように私はこれを解決し、まだajaxを使用できますか?ここで

は、リスナーのコードです:

public void categChanged() 
{   
    //store.cd.categ is alredy set ? WHYYY ? 
    String categ = store.getCd().getCateg();  
    this.subcategsArray = store.getCd().getSubcateg(categ);             
} 

私は任意のヘルプは素晴らしいことだJSF 2.0、Glassfishの3.1でのNetBeans IDE 7.0.1を、使用しています、ありがとう! AJAXの点で

+0

BeanをSessionの代わりにViewスコープに変更してください。 –

答えて

1

問題は、ユーザ は(送信せずに)無線を変更したとき「categ」プロパティが設定されていることである

ブラウザの戻るボタンを使用すると、ブラウザのキャッシュからページが表示されます。あなたはdisable caching of your pageでした。次に、新しいバッキングBean(リクエストまたはビュースコープの場合)を使用してサーバーから新しいページを取得するか、categChanged()メソッドの他のフィールドが存在するかどうかを確認します。

+0

キャッシングを無効にしようとしましたが、Session Beanです。リストが成長するかもしれないので、私はまたajaxが必要です。私が望むのは、Beanをフォームと '同期させる'ことだけです。つまり、ユーザーがフォームを塗りつぶしてページをリロードすると、空白のフォームが表示されます。 – Fernando

+0

セッションスコープ内にBeanを置くことは本当に必要ですか?あなたの要件はむしろ狭い範囲の1つを示唆しています。 –

+0

セッションスコープが必要です。この同期を行う方法が必要です.. – Fernando

関連する問題