2012-03-30 9 views
2

私のxpageは、データベース内に単純な「ステータス」フィールドと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)を1つのデータベースに保存し、データソースを他のデータベースにポイントするだけで済みます。

+0

私はStephanの第2の選択肢に同意します。これは、すべてのxpageを1つのデータベースに保存して外部データソースを参照する方が簡単だからです。 – pipalia

関連する問題