通过属性文件

时间:2015-12-14 13:36:32

标签: xpages xpages-ssjs

我想通过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>

我从房产中获得了价值。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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