@ViewAccessScoped
詳細については、Bean に 2 つのBean と 2 つのページ/ビュー、検索用の 1 つの Bean を持つ JSF アプリがあります。詳細 Bean は @ViewAccessScoped を参照するため、検索に戻るとデータが利用可能になります。他の CDI リファレンスはありません。WindowRenderMode は ですClientWindowRenderMode.CLIENTWINDOW
。これ以上の構成はありません。
これはこれまでのところ非常にうまく機能しています。別のページに移動するか、ログアウトすると、Bean のスコープが解除されます。私が経験した 1 つの問題: 新しいブラウザー タブで詳細ページを開くと、2 つの新しい Bean が作成されます。これは予期される動作です。しかし、タブを閉じると、Beans はまだそこにあります。タブが閉じられたときにサーバーに通知されないと思います。
- タブ clsoes を検出するために使用できるデルタスパイクに組み込みのソリューションはありますか?
- @ViewAccessScoped (Session-Timeout 以外に) の Bean のタイムアウトはありますか?
- 組み込みのソリューションがない場合: プログラムで Bean のスコープを解除するにはどうすればよいですか? できれば、そのタブに接続されているすべての Bean のスコープを解除します (= 同じ Window-ID) (JavaScript で自分自身を閉じることを検出し、閉じるときに Bean-Method を呼び出します)