我的理解是

@Stateful
@ConversationScoped


是允许的,并且是正常用法。

使用新的JSF 2.2 ViewScoped(javax.faces.view.ViewScoped)注释(据证明与CDI范围注释完全兼容),这意味着:

@Stateful
@ViewScoped


是可行的组合吗?

最佳答案

@Stateful是EJB注释,因此从技术上讲,您的bean将是有状态EJB bean,而不是CDI bean。而且它将仅在成熟的应用程序服务器中工作。
对于(仅)JSF 2.2 + CDI,请使用:

@javax.inject.Named // to expose a bean in the EL context
@javax.faces.view.ViewScoped // to make it view scoped


也不要将后一个注解与@ javax.faces.bean.ViewScoped混合使用,这花了我一段时间才找到问题。
There's a nice example.

10-06 02:40