使用RequestScoped(面孔)和RequestScoped(上下文)有什么区别

Koe*_*box 1 java servlets primefaces jsf-2.2 jakarta-ee

我注意到我可以摆脱使用和的@RequestScoped 注释@javax.enterprise.context.RequestScoped@javax.faces.bean.RequestScoped

在一种情况下,面孔版本似乎有效,而在另一种情况下,上下文版本似乎有效。

我想知道的是,哪个是首选/推荐?

我正在使用 PrimeFaces 框架,直到后来在我的开发中才意识到我可以 @ViewScoped在大多数情况下使用。

Mik*_*aun 6

尽管它们表示相同的范围,但它们用于完全不同的 bean 类型。

faces 版本用于 JSF 的本机 bean。JSF 2.2 中实际上已弃用这些内容。

上下文版本适用于 CDI bean。在 JSF 2.2 中,它们 100% 直接替代 JSF 的本机 bean。在 JSF 2.1 中,它们几乎是这样的替代品,除了本机视图范围不适用于它们这一事实(但您可以从 OmniFaces、CODI 和其他几个库添加一个视图范围)。