Luk*_*auk 0 javascript ajax session-variables xpages xpages-ssjs
我正在尝试将(Javascript IBM Notes)数据库对象存储在变量onPageLoad中,以便稍后在代码中进行访问。我尝试设置viewScope和sessionScope变量,但是它们似乎总是返回null。
onPageLoad:
var db_rooms: NotesDatabase = session.getDatabase(session.createName(doc_ProfileConfig.getItemValueString("ServerNA")).getCommon(), doc_ProfileConfig.getItemValueString("FilePathTX"));
viewScope.put("ResroomDb", db_rooms);
Run Code Online (Sandbox Code Playgroud)
我使用db_rooms来获取onPageLoad数据,因此我知道它是有效的数据库对象。
现在稍后,当我尝试再次获取数据库时:
var db:NotesDatabase = viewScope.get("ResroomDb");
Run Code Online (Sandbox Code Playgroud)
这样做会导致无法加载(状态500)。
我同时尝试了Session和ViewScope,是否可能将数据库对象存储在Application范围内/一个好主意,因为它只有一个页面应用程序?
不要在范围内存储任何基于Domino的对象。您不能这样做,因为句柄(从Java对象到底层C ++对象的指针)在每个请求结束时(页面加载,部分刷新等)都被回收。
如果要存储任何内容,请存储路径/副本ID,然后Session.getDatabase()再次通过检索数据库。与文档相同-存储UNID或NoteID并调用相关Database方法。