文档ID解析代码不为';无法执行XPages
在我的XPage中,我需要设置一个数据源(Domino文档) 我试着做如下:文档ID解析代码不为';无法执行XPages,xpages,lotus-domino,ssjs,Xpages,Lotus Domino,Ssjs,在我的XPage中,我需要设置一个数据源(Domino文档) 我试着做如下: <xp:this.data> <xp:dominoDocument var="requestDocument" action="openDocument" databaseName="#{javascript: print('db ok'); return database.getFilePath();}" documentId="#{javascript:
<xp:this.data>
<xp:dominoDocument var="requestDocument" action="openDocument" databaseName="#{javascript: print('db ok'); return database.getFilePath();}"
documentId="#{javascript:
print('heloooo');
var conclusion = database.getDocumentByUNID(doc_source.getDocument().getParentDocumentUNID());
var oConclusion = new OsnovaUI_document(conclusion);
var requestDoc = oConclusion.getMainDocument();
print('docID: ' + requestDoc.getUniversalID());
return requestDoc.getUniversalID();
}">
</xp:dominoDocument>
</xp:this.data>
但不是heloooo:(
我做错了什么?提前感谢最有可能的原因是
ignoreRequestParams
未设置为true
。除非您设置该值,否则数据源将根据URL查询字符串参数(HTTP请求参数)检索有关要编辑的文档的所有详细信息。因此,URL查询字符串参数优先,如果未设置任何参数,则表示“使用新文档”。如果已定义URL查询字符串参数应优先,则运行代码后仅忽略它是低效的。因此,action=“openDocument”
也被忽略-如果查询字符串中有docId,它将打开该文档,否则它将创建一个新文档
documentId
在页面首次加载时只能处理一次。根据数据源是绑定到面板还是XPage/自定义控件,它也将在beforePageLoad
事件之前运行。因此运行时绑定({javascript:…
)无效。${javascript:…
将避免混淆
错误处理可能有助于确定是否存在错误。XPages OpenLog Logger是最普遍的(免责声明,我是作者)之一。更改要在页面加载($)而不是动态(#)时计算的documentId:
如果数据库本身是数据库,则不需要databaseName。documentId中的代码可能没有运行。在DominoDocument操作之前,没有其他代码正在运行——文档源在哪里定义?以及什么是Osonava\U UI?删除此代码,print语句可能会工作。
09.03.2020 00:52:11 HTTP JVM: db ok
<xp:this.data>
<xp:dominoDocument var="requestDocument" action="openDocument">
<xp:this.documentId><![CDATA[${javascript:
var conclusion = database.getDocumentByUNID(doc_source.getDocument().getParentDocumentUNID());
var oConclusion = new OsnovaUI_document(conclusion);
var requestDoc = oConclusion.getMainDocument();
print('docID: ' + requestDoc.getUniversalID());
return requestDoc.getUniversalID();
}]]></xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>