在JSF页面中重用同一类的多个CDI @Named bean实例

时间:2010-12-29 00:19:07

标签: jsf-2 cdi backing-beans

我想在JSF2页面中使用相同CDI命名bean的多个实例。 (想象一下,我有一个支持bean访问内容管理器类别,但我想在同一个JSF页面中显示多个类别)我想知道如何“覆盖”@Named注释的默认名称,这样我就可以拥有那些3到4个实例在我的页面中。 (¿记住旧JSP“useBean”标签在页面中使用bean ...你可以这样使用同一个类的多个实例) 我搜索关于beans.xml但没有找到它。我可以使用旧的faces-context.xml“托管bean”条目吗?不知道这是否适用于CDI @Named bean,或者只能用于旧的非CDI托管bean。

感谢任何信息, 伊格纳西奥

2 个答案:

答案 0 :(得分:2)

你可以只使你的bean @Dependent(或删除现有的范围注释),只要你不在相同的EL表达式中使用bean两次,你就会获得新的底层实例。

答案 1 :(得分:0)

在给定范围内不能有多个bean实例。因此,例如,在一个请求中,您不能拥有两个请求范围的bean实例。这就是范围的重点。

所以我猜你根本不应该管理你的bean。只需将它们作为请求属性并通过EL访问它们。