0

ViewAccessScoped で CDI アノテーションを使用できるため、MyFaces CODI を使用しています。問題は、アプリケーションによって開かれた複数のブラウザー タブが@ViewAccessScopedバッキング Bean の同じインスタンスを共有していることに気付きました。気まずい。望ましくない。

私のページには、次のようなものがあります。

<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 101" >
   <f:param name="recID" value="101" />
</h:link>
<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 202" >
   <f:param name="recID" value="202" />
</h:link>
<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 303" >
   <f:param name="recID" value="303" />
</h:link>

(これは、Primefaces p:dataGridコンポーネントによって実行される反復で実際に行われますが、ここでは単純化しようとしています。)

いずれかのリンクをクリックすると、ブラウザが新しいウィンドウ (タブ) を開き、開いた JSF Web ページは@ViewAccessScopedバッキング Bean を参照します。ただし、それらはすべて同じ windowid を取得します。これは、リンクが含まれるメイン ウィンドウと同じです。それが、すべてがバッキング Bean の同じインスタンスを取得する理由だと思います。

誰でもこれを修正する方法を知っていますか?

4

1 に答える 1

1

これは既知のブラウザの問題です。解決策: http://old.nabble.com/-CODI--lazy-windowId-drop-script-p31654496.html

于 2011-10-24T19:04:43.530 に答える