gpt4 book ai didi

Xpages bean 与对象数据

转载 作者:行者123 更新时间:2023-12-02 06:43:06 24 4
gpt4 key购买 nike

有什么区别?我什么时候应该选择其中一种而不是另一种?

以及一些与此相关的小问题:

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

  • 看起来垃圾收集器回收了我所有的多米诺骨牌 handle 。我尝试向下转型然后克隆它,但它没有帮助(它如何知道它仍然是一个多米诺骨牌对象?)。有解决办法吗?

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

最佳答案

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

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

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

var tmpVar = new package.TestClass() 如果您将 tmpVar 存储在某处,则只会在当前请求之后保留。如果您在 createObject 方法中使用该代码,return tmpVar 会将 TestClass 的该实例传递到数据对象中。

关于Xpages bean 与对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26505681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com