我希望获取文档的URLlink。对于现有文档(已经保存,当我打开它们时 - 我得到了UNID的URL),没关系,我的问题是当我想获取新创建文档的URL时 - 我不要# 39;在URL中获取UNID。 (仅限,例如:http://myserver/ournsf/doc.xsp?action=newDocument
,没有UNID)
我的代码是这样的:
if(docSource.isNewNote()){
docSource.save();
}
empbody.appendText(context.getUrl().toString())
谢谢你的时间!
答案 0 :(得分:2)
context.getUrl()
仅为您提供当前网址。它不包含documentId,因为您在自己的案例中创建了一个新文档。
您正在寻找一个能够使用当前XPage打开当前文档的URL。你可以用它来获得它:
var thisdoc = docSource.getDocument(true);
var url = facesContext.getExternalContext().getRequest().getRequestURL().toString() +
"?action=editDocument&documentId=" + thisdoc.getUniversalID());
答案 1 :(得分:1)
您可以使用以下命令获取新创建文档的网址:
document1.getDocument().getUniversalID()
此处 document1 是文档的数据源名称。 如果要在保存后重定向到新创建的文档,可以在导航规则中使用此代码或添加以下XML:
<xp:this.navigationRules>
<xp:navigationRule outcome="xsp-success">
<xp:this.viewId><![CDATA[#{javascript:return "XPageName?documentId="+document1.getDocument().getUniversalID()+"&action=editDocument"}]]>
</xp:this.viewId>
</xp:navigationRule>
</xp:this.navigationRules>
XPageName 是XPage的名称。
答案 2 :(得分:0)
您可以使用数据源的postSaveDocument事件来计算来自UNID的URL,如
var url = "page.xsp?action=openDocument&documentId="+document1.getDocument().getUniversalID();
document1.setValue("url", url);
document1.save();