我有一个场景,并且没有明确的想法让它工作。
以下是示例方案:
<ui:include src="myView.xhtml" />
)我在考虑在 @Inject Container1Bean 和 @Inject Container2Bean > MyViewBean ,所以在 MyViewBean 中,我可以获得container1Bean的 transactionDate 或 container2Bean的transDate 。决定哪个容器bean处于活动状态是检查哪个容器bean不为空。
但是,如果容器bean增长,可能有其他容器bean使用MyViewBean, @Inject ContainerXXBean 将在 MyViewBean 即可。必须有其他解决方案。
请分享如何实现这一点的想法..谢谢! : - )
谢谢!
答案 0 :(得分:2)
如果您只想访问其他bean的内容,则可以执行该程序化。
从一个bean获取FacesContext的当前实例。使用该上下文,您可以获取其他bean的实例。
见illustration。根据您问题的标题,您希望在bean之间获得一些信息。您可以通过调用其他bean的公共方法来完成此操作,这些方法可能是专门为此目的而创建的。 (setter方法干将)。
答案 1 :(得分:1)
如果container1Bean,myViewBean和container2Bean共享一些属性,为什么不把它们放在一个新的bean中呢? (我们称之为sharedBean,但我相信你会找到一个适合你案例的更好的名字)。然后,您可以在每个依赖bean中使用@ManagedProperty注入sharedBean。我们试着不要使用循环引用。
我还建议您检查一下您的架构。你确定你需要所有的豆子,这样分开吗?这听起来像是难以维护的东西。