2

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

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

最好的问候奥洛夫

4

2 回答 2

1

将bean视为“全局变量”,因此您可以通过定义不同的名称来拥有不同的功能。例如:“invoice”、“customer”、“order”、“orderItem”等。由你决定。

于 2012-04-16T14:31:19.963 回答
1

您不能为特定的 xpage(据我所知)分配托管 bean(如在 faces-config 中定义它们)。它们是特定于应用程序的。我认为您正在寻找类似工厂模式/创建者模式的东西。这些是用于创建特定类的实例的设计模式。有关更多信息,请参阅:工厂方法模式维基百科创建模式维基百科

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

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

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

于 2012-04-16T19:30:08.297 回答