我一直在阅读Java EE 6(以及CDI 1.0)中的会话范围,以及它如何从浏览器中的不同选项卡中隔离数据,以及在特定页面工作流的多个请求中保留数据。我没有问题。
在我的阅读中,我读过很多想法来自Seam。通常我会看到一些警告,例如“但是CDI的会话不会做”嵌套的“对话”。我不确定究竟什么是“嵌套”对话?
我也读过这个好的链接http://www.andygibson.net/blog/article/understanding-nested-conversations/
但我认为我缺少一些基本的东西......我只是没有完全得到这种“嵌套”对话在这种情况下。任何人都可以帮助我愚蠢吗?
答案 0 :(得分:1)
嵌套对话具有自己的对话上下文,但可以从外部对话的上下文中读取值。外部对话的上下文在嵌套对话中是只读的,但由于对象是通过引用获得的,因此对对象本身的更改将反映在外部上下文中。
因此,通过嵌套对话,您可以将给定的父对话拆分为多个子对话,每个对话都包含其上下文和对父对话的访问权。
尽管CDI受到Seam的严重影响,但它只能说是几种影响的共同点,所以它并不包含Seam所拥有的所有内容。我们的想法是,通过创建CDI扩展,例如Seam 3,以及现在应该由Apache Deltaspike完成的工作,可以在CDI标准之上提供更多常用功能。
不幸的是,我对Deltaspike提供的内容感到非常失望,尽管JavaEE 6和CDI已经存在很长时间,但我习惯使用的Seam 2项目仍然存在差距。老实说,我只是看看Deltaspike Homepage开头的单词" 一些标志的想法"这反过来结束了我对它的信心......