3

我一直在阅读 Java EE 6(以及 CDI 1.0)中的对话范围,以及它如何将数据与浏览器中的不同选项卡隔离开来,并在特定页面工作流的许多请求中保留数据。我那里没有问题。

在我的阅读中,我读到它的许多想法都来自 Seam。我经常看到诸如“但 CDI 的对话范围不进行“嵌套”对话”之类的警告。我不确定“嵌套”对话到底是什么?

我也读过这个很好的链接http://www.andygibson.net/blog/article/understanding-nested-conversations/

但我认为我错过了一些基本的东西。在这种情况下,我只是没有完全理解“嵌套”对话是什么。任何人都可以帮我把它弄糊涂吗?

4

1 回答 1

1

来自Seam 2 文档

嵌套对话有自己的对话上下文,但可以从外部对话的上下文中读取值。外部对话的上下文在嵌套对话中是只读的,但由于对象是通过引用获得的,因此对对象本身的更改将反映在外部上下文中。

因此,使用嵌套对话,您有机会将给定的父对话拆分为多个子对话,每个子对话都有其上下文和对父上下文的访问权限。

尽管 CDI 深受 Seam 的影响,但可以说只是几个影响的共同点,因此它并不包含 Seam 的所有内容。其想法是,通过创建 CDI 扩展,例如 Seam 3,以及现在应该由 Apache Deltaspike 完成的工作,可以在 CDI 标准之上提供更多常用的功能。

不幸的是,我对 Deltaspike 提供的东西感到非常失望,尽管 JavaEE 6 和 CDI 已经存在了很长时间,但与我在 Seam 2 项目中所习惯的仍然存在差距。老实说,看看Deltaspike 主页,它以“一些徽标创意”开头,这反过来又结束了我对它的信心......

于 2014-01-08T15:38:34.570 回答