我有一个带有一些bean的webapp,非常适合作为ViewScoped
托管bean。我使用一个向导托管,它具有相同的范围,一度失去其窗口选项卡;当然,当返回时,会重新创建向导。是否有可能以某种方式扩展此范围,因为我的wizard
bean在返回时不会被删除和重新创建?
在这种情况下哪个是我最好的选择?
我还使用session scope
作为wizard
,但我必须从上下文中删除bean,我认为这不是一个很好的干净方法。 (问题是我必须将所有managed properties
设为session scopes
)
答案 0 :(得分:2)
您可以使用CDI's conversation scope来自己设置对话的开始和结束(例如您的向导工作流程)。
但请注意,并非总是可以将JSF ManagedBeans注入CDI bean,反之亦然。 See this related answer。在切换到CDI之前,请确保它在您的特殊设置中有效。
如果您使用的是像Primefaces这样的组件库,那么您也可以使用wizard component。