我有一个XPages Library数据库,其中创建了所有XPage。用户将从那里访问其他数据库来完成他们的工作。
我需要将这些数据库的名称放在变量中,以便可以在任何服务器(开发,测试,生产等)上找到它们,因为名称始终相同。我认为那些变量应该是applicationScope变量,但我不确定。
如果applicationScope在我需要的变量中,你能告诉我哪里是创建它们的最佳位置。
如果它不是正确的变量,哪种变量最好,我在哪里定义它们。
答案 0 :(得分:4)
部署一些静态引用的简单方法是 xsp.properties 文件。此文件允许添加可在服务器上的所有XPage应用程序上访问的变量
例如这个变量......
myproperty.test=Hello World
...可以通过这种方式在任何XPage中访问:
context.getProperty("myproperty.test")
这些属性也可以通过主题设置。
但必须手动将属性添加到任何服务器。
另一种方法是使用配置文档:这些可以通过复制机制轻松部署到任何服务器上的任何数据库。这些文档的值可以缓存在applicationScope变量中,以获得更好的性能。
修改强>
您应该更改服务器上的 XSP.properties 文件,而不是特定于数据库的One文件。这不需要Designer,只需要文本编辑器。
答案 1 :(得分:2)
applicationScope 变量在内存中保留大约10-15分钟,然后丢弃。如果我理解您的需要,您应该永久存储数据库名称或URL,而Notes文档最适合。
答案 2 :(得分:0)
将值放入a.properties文件的缺点是您需要设计器客户端进行更改。 我建议为您的应用程序使用全局配置文档,可以在客户端或使用XPage进行编辑。 请查看Paul Withers撰写的xhelp应用程序。深入了解代码,了解如何在应用程序中使用配置文档。 XHelp可以从这里下载http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&documentId=426CB81230B6F94A8625789000830762
答案 3 :(得分:0)
我认为因为您正在讨论像应用程序这样的门户网站,所以最好有一个设置文档实现。您必须创建一个admin xpage,它将检查lookupsettingsview中是否存在某种类型的文档(您必须自己创建该文档)。如果没有,则创建文档。如果有一个使用该文档作为数据源。
在此文档中,您可以存储有关要显示的应用程序的复制ID和服务器信息。这可以是一个带有多行文本字段的简单表单。数据可以以“Description $ repid $ server”的格式存储。在Web上,您必须检查此文档,使用重复读取文档中的条目。对于每次迭代,您只需使用xp:link标记即可。当然,您首先需要计算应用程序的URL,但这不是最大的问题。