我有一个场景,并没有明确的想法,这工作呢。如何在JSF 2中的bean之间传递信息?
这里的示例场景:
- 我有一个myView.xhtml文件,可以将显示为一个窗口弹出或2其他容器XHTML一个primefaces对话框弹出,让我们说container1.xhtml和container2.xhtml(该myView.xhtml包含在类似的东西?
<ui:include src="myView.xhtml" />
) - 而且,我们也有观点作用域bean,我们姑且称之为myViewBean,container1Bean和container2Bean
- container1Bean有财产transactionDate和container2Bean具有transDate
- myViewBean的@PostConstruct方法的属性将查询基于类型日期的参数数据库。
- 在container1.xhtml,如果用户点击一个按钮,将弹出myView.xhtml,container1Bean应该能够提供它的transactionDate到myViewBean ,并且myViewBean将能够基于它在@PostConstruct方法中进行查询。
- 在container2.xhtml,如果用户点击一个按钮,将弹出myView.xhtml,container2Bean应该能够提供它的transDate到myViewBean ,并且myViewBean将能够基于它在@PostConstruct方法中进行查询。
我想使用@Inject Container1Bean和@Inject Container2Bean在MyViewBean,让里面的MyViewBean,我可以得到transactionDate容器1豆子或transDate container2Bean。决定哪个容器bean是活动的是检查哪一个不是null。
但是,如果容器豆生长,有可能是其他容器豆是利用MyViewBean,而@Inject ContainerXXBean将在数量增长内MyViewBean。必须有其他解决方案。
请分享如何完成此操作的想法..谢谢! :-)
谢谢!
谢谢您的建议。而且我非常感兴趣的是您关于审查架构的建议。我有一个基本的想法,即每个页面都有它自己的view-scoped-bean来处理每个页面的操作。此外,有些页面可以重用,可以从其他页面查看,并且可以参数化(就像示例一样,viewBean可以根据参数具有不同的查询结果)。你有关于如何分割jsf bean的建议吗?我一直想知道这方面的最佳做法。谢谢 ! – bertie 2011-03-18 15:37:49
我只是说,在纸上画一个小图。你可以共享一个bean来获得多个视图,有时它会有所帮助。另外,如果图上的多个视图共享太多信息,只需让它们共享该bean。剩下的问题是,问问自己是否应该有参数视图(应该可以通过更改url来影响视图?),或者只需调用方法(使用可能是对象的参数)来导航。 – ymajoros 2011-03-21 06:32:44
谢谢你..这是有道理的! – bertie 2011-03-22 04:20:08