托管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的该实例传递到数据对象中。