我的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?
答案 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)保存在一个数据库中,只需将数据源指向另一个数据库。