文档ID解析代码不为';无法执行XPages

文档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:

在我的XPage中,我需要设置一个数据源(Domino文档)

我试着做如下:

<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>