会話コンテキスト内にBeanを格納する方法はありますか?つまり、新しい会話ごとに、それに属する新しい個別のBeanが作成されます。
1 に答える
必要なことを行う最も簡単な方法は、JSF2がスコープを管理するConversationScopedマネージドBeanまたはEJBを宣言することです。
ここにいくつかの良い説明があります:
- http://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html
- http://www.ibm.com/developerworks/java/library/j-jsf2fu-0710/index.html#cdi
- http://www.theserverside.com/tip/Dependency-Injection-in-Java-EE-6-Conversations-Part-4
- http://www.andygibson.net/blog/article/cdi-conversations-part-1/
- http://www.andygibson.net/blog/tutorial/pattern-for-conversational-crud-in-java-ee-6/
- http://blog.goyello.com/2011/06/08/jee6-cdi-and-conversation-scope/
...どれも私よりも良い仕事をするでしょう。非常に短いバージョンでは、Beanに注釈を付けます(これは、Beanの規則に従うプレーンPOJOにすることができます)@ConversationScoped
。次に@Inject
、会話にConversation
使用できるオブジェクトを作成します。この豆を他のものに注入します。およびメソッドはそのライフサイクルを制御します。begin()
end()
@ConversationScoped
Conversation.begin
Conversation.end
ここに投稿するコードは少したくさんありますが、上記のリンクが役立つはずです。
POJOマネージドBeanの代わりに、EJB@ConversationScoped
を使用できます。@Stateful @ConversationScoped
会話でEJBサービスが必要な場合に非常に便利です。
概念的な背景と詳細の一部については、スコープに関するCDI/溶接リファレンスとCDI/溶接マニュアルの残りの部分をお読みください。それは本当によく書かれていて、本当に良いです。