加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JSF CDI:对话范围bean [s]最佳实践

发布时间:2020-12-14 16:44:50 所属栏目:Java 来源:网络整理
导读:我目前正在学习JSF 2.0,并且对于这个会话范围功能的存在感到非常高兴,这对于在同一页面上打开一个新的选项卡或一个新窗口,并且具有单独的资源,而不是相互覆盖,这是非常有用的. 但是好奇的是如何实现这一点很好,关于什么时候开始对话,什么时候关闭它. 在我的
我目前正在学习JSF 2.0,并且对于这个会话范围功能的存在感到非常高兴,这对于在同一页面上打开一个新的选项卡或一个新窗口,并且具有单独的资源,而不是相互覆盖,这是非常有用的.

但是好奇的是如何实现这一点很好,关于什么时候开始对话,什么时候关闭它.

在我的情况下,我有每个JSF页面的每个CDI bean.让我们说我有一个菜单,当它被点击时,这将导致页面A,从A可以导致B,B可能导致C,C可以导致D,所有这4个页面都连接在一个链.

从B或C或D Bean访问A的bean属性是可能的,也可以从C或D bean访问B的属性等等.

现在我很困惑:

>所有这些A B C D是否应该
在会话范围内,或
也许只是A?因为我想
有时从另一个页面
在ABCD链之外,像一个页面
F,它可以导航到页面B,
虽然我不知道如何供应
数据到豆B还没有.
>所有这些A B C D是否应该
合并成一个豆
>哪里和什么时候开始
对话,我想到了
建设者,但我不认为这是一个
好主意,因为我喜欢开始
第一次访问时的对话
页面,而不是豆
>何时何地停止
对话,所以不会有
未使用的资源挂在身边

请分享你的想法.

解决方法

JSF 2提供请求,视图,会话和应用程序范围. CDI引入了对话范围,但更重要的是,它引入了一个标准,通过该标准可以向平台添加新的范围.

您所描述的范围可能更适合像窗口范围这样的自定义范围.实施这一范围的两个项目是:

> Apache MyFaces CODI
> IceFaces有一个JSF(非CDI)Window scope implementation.

不过,我鼓励你重新思考你的豆结构.我已经非常喜欢View范围,再加上JSF 2视图参数来将信息从一个页面传播到另一个页面(以及从一个View范围实例到另一个).

MyFaces“View Access”范围似乎是另一种整洁的方法,只要你浏览的页面保持对该范围的引用,那么bean就会保留在范围内.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读