0

ここここに投稿されたアドバイスに基づいて、 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セグメントを投稿できますか?

4

1 に答える 1

2

戻る前にconversation.close()を呼び出します-javaxではなく正しいアノテーションorg.apache ...をインポートしたことを確認してください...- Wikiを参照するか、代わりにViewAccessScopeを使用してください。使用しているのは、Glassfish3.1.1に問題なくバンドルされていることです。myfaces-extcdi-bundle-jsf20-1.0.1.jarは、必要な唯一のjarファイルです。また、「それ」はありませんのでご注意ください。CODIを使用すると、標準のCDI会話で得られるモノリシックで柔軟性のないものではなく、きめ細かいグループ化可能な会話が可能になります。

Mavenビルドを使用した最新バージョンのセットアップもWikiにあります。

于 2011-09-21T20:39:13.787 に答える