こことここに投稿されたアドバイスに基づいて、 MyFacesCODIを調べてアプリケーションとともにインストールしました。私の最大の懸念は、Weldによる@ConversationScoped機能の実装の欠点を克服することでした。いくつかの問題が発生した後、GlassFish 3.1開発プラットフォームで実行し、すべてのBeanを使用するように変換しました。
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
結局、私は以前よりもずっと先に進んでいないようです。これ以上conversation.begin()メソッドを呼び出す必要はありません。これは良いことですが、ブラウザーがページを離れて戻ってきた後、Beanはぶらぶらします。
私が望んでいたのは、CDIで動作するJSF2.0@ViewScopedの機能でした。ユーザーがページを離れたら、ユーザーが戻ってきた場合は、バッキングBeanを破棄して、再作成する必要があります。CODIでこれを行う方法はありますか?
ちなみに、ドキュメントには、@ ViewScopedアノテーションを取得し、それらを適切に処理すると記載されています。私はこれを試してみましたが、Weldはそれをデプロイしませんでした。
PS私はmyfaces-extcdi-dist-jsf20バージョン0.9.5を使用しています。コアとJSF2オプションモジュールakibeをインストールしようとしましたが、GlassFish/Weldプラットフォームにデプロイされませんでした。ここでのアドバイスは大歓迎です。
更新1:CODIでサポートされているViewAccessScopeアノテーションを試してみましたが、それで望みどおりの結果が得られたようです。
フォローアップの質問。Apacheが維持するmavenリポジトリが維持する最新のバンドルは0.9.5です-誰かが最新バージョンをフェッチするpom.xmlセグメントを投稿できますか?