通过属性文件为 xp:dominoDocument 设置数据库

setting database for xp:dominoDocument via properties file

我想通过 SSJS 和属性文件为 xp:dominoDocument 数据 属性 设置数据库位置:

<xp:this.data>
        <xp:dominoDocument var="document1" action="openDocument"
            formName="album   -   $f-album" computeWithForm="both"
            concurrencyMode="force"
            databaseName="#{javascript:datasource.getString('DB_FILEPATH')}">
            <xp:this.documentId><![CDATA[#{javascript:context.getUrlParameter("UNID")}]]></xp:this.documentId>
        </xp:dominoDocument>
    </xp:this.data>

数据源 属性 包含例如

DB_FILEPATH=Bildr6Phase10Data.nsf

可通过

获得
<xp:this.resources>
        <xp:bundle src="/datasource.properties" var="datasource"></xp:bundle>
    </xp:this.resources>

上面的代码会报错:

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
Error while executing JavaScript computed expression
Script interpreter error, line=1, col=12: [ReferenceError] 'datasource' not found

但是如果我尝试:

<xp:text escape="true" id="computedField1"
        value="#{javascript:datasource.getString('DB_FILEPATH')}">
    </xp:text>

我从 属性 中获取值。 我做错了什么?

尝试在 beforePageLoad 和 beforeRenderResponse 中记录 datasource.getString('DB_FILEPATH') 而不是计算字段。还要在 databaseName 属性 中注销一条消息。我希望在首次加载组件树时需要 databaseName 属性 。但是,如果稍后加载资源字符串,我不会感到惊讶。

另一种方法是使用 xsp.properties 文件。在 XPages OpenLog Logger 中有关于如何从 xsp.properties 检索 属性 的代码。