我的理解是
@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.