具有多个页面的多个托管bean

时间:2012-04-16 14:22:09

标签: xpages

我可能在这里是个白痴,但我有一个关于xpages和托管bean的问题。我试图通过将逻辑移动到对应于实体的bean(或多或少的文档)来分离逻辑和表示。我有一个数据提供程序类获取和设置数据。这很好,只有一个xpage,但随着应用程序变得越来越高级关系和多个xpages我遇到了一个问题(我正在寻找http://blog.mindoo.com/web/blog.nsf/dx/18.03.2011104725KLEDH8.htm?opendocument&comments#anc1的灵感)。

如果我没有错,我不能将不同的托管bean分配给不同的xpages,因此在faces-config.xml中无法将不同的data-provider-classes和businesslogic-beans设置为不同的xpages。现在我可能会以错误的方式解决这个问题,但任何指针都非常受欢迎。

最好的关注 奥洛夫

2 个答案:

答案 0 :(得分:1)

将bean视为“全局变量”,因此您可以通过定义不同的名称来使用不同的函数。例如:“invoice”,“customer”,“order”,“orderItem”等。这取决于你。

答案 1 :(得分:1)

您无法为特定的xpages分配托管bean(如在faces-config中定义它们)(据我所知)。它们是特定于应用的。我认为你正在寻找像工厂模式/创作者模式的东西。这些是用于创建特定类的实例的设计模式。有关详细信息,请参阅:Factory method pattern WikipediaCreational patterns wikipedia

当您创建比萨饼网站时,您可以根据您按下的按钮设置工厂来创建特定类型的比萨饼。然后在内存(bean)中创建每个披萨,并将其用作自定义控件的数据源。当客户准备好订购时,比萨饼被保存到notesdocument(保存状态)并与所有其他产品一起转换为该客户的订单。

每当您想要再次检索特定的披萨时(例如,当您想要检查顾客订购的披萨时),您只需询问工厂是否可以获得带有编号/ ID的披萨,工厂将返回该披萨来自notesdocument。建立一次,使用很多。

因此,基本上每个页面都没有多个托管bean,但是每个应用程序都可以在您需要的任何地方使用它们。