如何在不同的笔记数据库中的xpages之间传递值?

时间:2012-03-30 16:38:48

标签: xpages

我的xpage在A数据库中有一个简单的'status'字段和一个xp:link。 xp:link有一个脚本操作可以重定向到B数据库:

 <xp:eventHandler event='onclick' submit='true' refreshMode='complete'>
    <xp:this.action><xp:executeScript>
    <xp:this.script><![CDATA[#{javascript:facesContext.getExternalContext().redirect('http://domino/databaseB.nsf/testLink.xsp');
}]]></xp:this.script></xp:executeScript>
    </xp:this.action></xp:eventHandler>

如何将'status'值传递给B数据库中的testLink.xsp?

2 个答案:

答案 0 :(得分:5)

最好和最简单的方法是添加查询参数,例如“testLink.xsp?status = xxx”。

当然,在这种情况下,您将泄露网址中发送的信息。如果不合适(您不希望用户看到您传输的值),您可以在数据库B中设计一个中间页面(例如XAgent)。您可以向此页面发送两个参数;

/dbB.nsf/redirect.xsp?status=XXX&redirectTo=testLink.xsp

然后将此值添加到redirect.xsp的sessionScope中,并将用户重定向到另一页。

答案 1 :(得分:4)

另一个选项,有点复杂但是“隐藏”:在Nathan's XSP Starter kit中有一个“服务器范围”范围实现的模板。如果在那里添加隔离代码(例如,每个用户具有条目的List),您可以轻松地在应用程序之间传递值。您可能希望在会话到期后添加会话侦听器以清除用户的变量。

最后:你可以将应用程序(你的xsp)保存在一个数据库中,只需将数据源指向另一个数据库。