これは、JSF 2.0 用の MyFaces CODI JSF-Module v1.0.1 にあります。
私は @ViewAccessScoped バッキング Bean を使用する JSF ページを持っています。このページは、次のように別のページから呼び出されます。
<h:link outcome="/editLocation" target="_blank"
value="Edit Location: #{maintLocation.selected.id}"
disabled="#{!maintLocation.rowSelected}">
<f:param name="locationID" value="#{maintLocation.selected.id}" />
<f:param name="closeOnUpdate" value="true" />
</h:link>
ユーザー エクスペリエンスは、editLocationページが新しいウィンドウまたは新しいタブにポップアップ表示され、ユーザーがそれを編集し、closeOnUpdateパラメーターが true に設定されている場合、完了時にwindow.close()を呼び出すというものです。
それはすべてうまくいきます。ただし、ユーザーが別の場所を編集した場合、ViewAccessScoped Bean はまだそこにあるため、再インスタンス化されません。そのため、パラメータを確認することはなく、単に前のレコードの状態を思いつきます。
ブラウザーの URL ウィンドウでwindowidパラメーターを手動で消去すると、新しいバッキング Bean を取得できます。これをh:linkコンポーネントから削除する方法はありますか?
または、Bean が完了ボタンを押すと、Bean が含まれているスコープからそれ自体を削除する方法はありますか?