【问题标题】:Xpages bean vs object dataXpages bean 与对象数据
【发布时间】:2014-10-22 10:45:10
【问题描述】:

有什么区别?我什么时候应该更喜欢一个而不是另一个?

还有一些与此相关的小问题:

  • 如果我有对象数据,什么时候调用 saveObject?

  • 看起来垃圾收集器回收了我所有的 domino 句柄。我试图低调然后克隆它,但它没有帮助(它怎么知道它仍然是一个多米诺骨牌对象?)。有解决办法吗?

  • 如果我从 xPages 创建“var tmpVar = new package.TestClass()”,它会在更新时被回收。但是,如果我从 bean 创建 java 对象,它会留在那里。对吗?

【问题讨论】:

    标签: xpages javabeans objectdatasource


    【解决方案1】:

    托管 bean 正是由 XPages 运行时管理的。它们是在第一次调用它们时创建的。尽管它们有一个空的构造函数,但是 faces-config 中的 managed-properties 元素允许您定义值(我相信您可以将 SSJS 代码添加到 faces-config 来计算值)。

    对象数据源允许您处理何时创建的内容,这意味着它们的范围可以比 viewScope 更小——面板或自定义控件。 saveObject 方法由 Save All Datasources 事件调用。实际上,如果您正在编写对象数据源代码,您将编写一个按钮并调用相关方法,而不是使用一个简单的操作。

    Java 变量可以被回收,但 Domino 对象只能通过两种方法回收。第一个是调用 recycle() 方法,第二个是在每个请求结束时,当会话被回收时。因为 recycle() 调用回收所有子元素,所以在请求结束时所有内容都会被回收。这就是为什么您不能将 Domino 对象存储在作用域变量或任何其他持久对象(即 bean)中。请注意,像 DateTimes、RichTextStyles 等对象是会话的子级,而不是像 NotesItem 或 NotesRichTextItem 这样更细化的 Domino 对象。

    var tmpVar = new package.TestClass() 仅在您将 tmpVar 存储在某处时才会在当前请求之后持久化。如果您在 crerateObject 方法中使用该代码,return tmpVar 会将 TestClass 的该实例传递给数据对象。

    【讨论】:

      【解决方案2】:

      我来回讨论纯托管 Bean 与数据对象。有一段时间我使用了大量的数据对象,但后来在 JSF 生命周期中遇到了一些问题,我认为我无法正常工作。不确定是否涉及重复或自定义控件。所以我现在几乎已经回去并放弃了它们。

      除此之外,我遇到的那个问题我不确定是否有很大的不同。我认为 dataObject 可能会更加混乱。因为您可以在 XPage 上设置它 - 但我相信您可以将其范围更改为会话或应用程序。但是,如果你这样做了,那么这似乎更混乱而且很难找到,然后在 faces-config 中制作 bean。

      我不确定您问题的 saveObject 部分。

      您永远不想将纯 domino 对象放入 bean 或作用域变量中,因为它们不可序列化,并且会在某个可能对您最不方便的时候被垃圾收集器丢弃。

      如果您只是执行“var tmpVar = new package.TestClass()”,那么由于该变量的寿命有限,它会很快被杀死。如果您想以这种方式创建对象并将其保留更长时间,请将其置于真实范围内:viewScope.put("myObject", tmpVar);

      我有一个视频,我试图举例说明我认为使用 java 对象的 4 种方法。在博文中,Tim Tripcony 提供了一些非常好的 cmets,它们可能会为您提供更多信息。

      http://www.notesin9.com/2013/08/01/notesin9-122-working-with-java-objects-in-xpages/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-02
        • 2016-12-24
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多