我想通过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>
我从房产中获得了价值。 我做错了什么?
答案 0 :(得分:1)
尝试在beforePageLoad和beforeRenderResponse中记录datasource.getString('DB_FILEPATH')
,而不是计算字段。同时在databaseName
属性中注销消息。我希望首次加载组件树时需要databaseName
属性。但是,如果稍后加载资源字符串,我不会感到惊讶。
另一种方法是使用xsp.properties文件。有关如何从XPage OpenLog Logger中的xsp.properties检索属性的代码。