如何在每个对话中存储bean

时间:2012-08-15 13:54:47

标签: java jsf seam jboss7.x conversation-scope

有没有办法在会话上下文中存储一些bean?即,对于每个新对话,都会创建一个属于它的新的单独bean。

1 个答案:

答案 0 :(得分:2)

执行所需操作的最简单方法是声明一个ConversationScoped托管bean或EJB,其中JSF2管理范围。

这里有一些很好的解释:

......其中任何一项都会比我做得更好。非常简短的版本是您使用@ConversationScoped注释来注释bean(可以是遵循bean约定的普通POJO)。然后,您@Inject Conversation个对象,您可以将其用于begin()end()个对话。将此@ConversationScoped bean注入其他内容。 Conversation.beginConversation.end方法控制其生命周期。

这里有一些代码可以发布,但上面的链接应该有所帮助。

@ConversationScoped POJO托管bean的替代方法可以是@Stateful @ConversationScoped EJB。当您在对话中需要EJB服务时,它们可以非常方便。

对于某些概念背景和细节,请阅读CDI/Weld reference on scopes - 以及CDI / Weld手册的其余部分。这是真的写得很好,非常好。