xpages在保存新创建的文档后获取URL

时间:2014-05-05 06:58:36

标签: xpages

我希望获取文档的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())

谢谢你的时间!

3 个答案:

答案 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();
相关问题