2013-04-29 32 views
2

我使用的MyFaces CODI或SeamFaces ViewScope服务看到大家说,CDI没有@ViewScope注释CDI ViewScope使用CDI扩展或MyFaces的CODI或SeamFaces

如果ViewScope服务只是为了检索每个Ajax调用后的豆回想起来,我认为CDI提供了扩展来添加自己的实现,并触发AfterBeanDiscovery事件,这将有利于从ViewRoot Map中检索owr bean。

有关更多说明,请参阅此主题http://www.verborgh.be/articles/2010/01/06/porting-the-viewscoped-jsf-annotation-to-cdi/

那么谁能告诉我这个实现和MyFaces CODI或SeamFaces ViewScope有什么区别?

Thanx提前。

回答

3

Seam的faces查看范围有一点不同,即它的行为就像JSF视图范围,但允许CDI注射为好。此外,这些是预建解决方案与需要构建自己的解决方案。

+1

在我来说,我只是在需要每个AJAX调用回后让我的豆(可以完美兼容CDI扩展,但它实际上是对每一个AJAX调用一个新创建的范围)。我从来没有使用托管bean ViewScope ,它的行为是什么? – Kurohige 2013-04-29 21:52:03

+1

@Kurohige当用户在同一视图中执行操作时(通常为ajax操作),它将使您的bean活动。这意味着,你不必加载在每次请求即所有资源加载数据的''并执行一个Ajax请求,以显示一个弹出的编辑/删除里面的行。 – 2013-04-30 04:26:00

+0

谢谢@LuiggiMendoza ..另外一个问题?如果我从FacesContext ViewRoot中检索bean,是否有任何内存问题? – Kurohige 2013-04-30 06:10:38