2012-03-30 51 views
2

我的xpage在A數據庫中有一個簡單的「狀態」字段和一個xp:鏈接。 XP的:鏈接有一個腳本操作重定向到B數據庫:如何在不同筆記數據庫中傳遞xpages之間的值?

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

如何傳遞B中數據庫中的「狀態」值testLink.xsp?

謝謝!

回答

5

最好和最簡單的方法是添加一個查詢參數,如「testLink.xsp?status = xxx」。

當然在這種情況下,你會透露在URL中發送的信息。如果不希望(您不希望用戶看到您傳輸的值),則可以在數據庫B中設計中間頁面(例如XAgent)。您將兩個參數發送到此頁面;

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

然後你在這個redirect.xsp值添加到sessionScope,並把用戶重定向到另一個頁面。

3

另一種選擇,有點複雜,但「隱藏」:在Nathan's XSP Starter kit有一個「服務器範圍」範圍實現模板。如果您在那裏添加隔離代碼(例如,每個用戶都有條目的列表),您可以輕鬆地在應用程序之間傳遞值。一旦會話過期,您將希望添加會話偵聽器來清除用戶的變量。最後:您可以將應用程序(您的xsp)保存在單個數據庫中,並將您的數據源指向其他數據庫。

+0

我同意Stephan的第二種選擇,這就是我傾向於做的事情,因爲將所有xpages保存在單個數據庫中並引用外部數據源更容易。 – pipalia 2012-03-31 17:50:37

相關問題