xpages - Xpages - dominoDocument 的计算属性无法按预期工作
问题描述
在 XPage 上,我定义了一个 dominoDocument 数据源,如下所示:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.resources>
<xp:bundle src="/datasources.properties" var="datasources" />
<xp:bundle src="/environment.properties" var="env"></xp:bundle>
</xp:this.resources>
<xp:this.data>
<xp:dominoDocument formName="fa_Attachment" var="attachDoc">
<xp:this.databaseName><![CDATA[#{javascript:return env["srv_notesname"] + "!!" + utilityBean.getFilePath() + "//" + datasources["db_inbox_filepath"]}]]></xp:this.databaseName>
</xp:dominoDocument>
</xp:this.data>
在 environment.properties 我列出了键/值对:
# ENVIRONMENT SETTINGS REFERENCES
#
srv_notesname=Server01/Server/ACME
datasource.properties 类似:
# DB Inbox
db_inbox_filepath=inbox.nsf
当我加载 XPage 时,我收到以下消息:
com.ibm.xsp.exception.EvaluationExceptionEx:执行 JavaScript 计算表达式时出错 执行 JavaScript 计算表达式时出错脚本解释器错误,line=1,col=8:[ReferenceError] 'env' not found
我本来希望我可以使数据绑定有点动态,所以我做错了什么?
解决方案
作为元素子元素的数据源xp:view
需要在 beforePageLoad 之前生成其属性。“打印”声明将让您确认这一点,就像我几年前在我的会议上所做的那样“马蒂,你只是没有在第四维度思考”(可能仍可作为 TLCC 网站上的网络研讨会)。
使其成为 Panel 的子项将允许您拾取beforePageLoad
.
除非范围为request
. 所以你可以使用${javascript:...}
而不是#{javascript:...}
推荐阅读
- docker - 如何让docker重置远程服务器上的图像?
- sql - SQL 格式数字有括号
- less - 如何在 Vuetify 样式中使用手写笔块级导入
- firebase - 我可以将一个孩子设置为 .write: true 而其他孩子受到限制吗?
- sql-server - 除非我重新启动 sql server,否则 SSIS 包需要永远执行
- java - 此服务器不支持 Project facet Dynamic Web Module 4.0
- c++ - 在 Ubuntu 的终端上运行 C++ 文件
- spring - 如何避免在 requestMapping 方法中使用实体造成的漏洞?
- excel - 如何将一个单元格与一个范围进行比较,如果 TRUE - 从右侧单元格复制内容?
- go - 意外的 Goroutine 行为