0

ユーザーが認証すると、マネージドBeanが顧客IDを記憶する一連のデータベースがあります。この顧客 ID は、一連のデータベース全体のすべての XPage で使用されます。すべての XPage は別のアカウントに切り替えることができるため、顧客 ID が変更されます。

アカウントを切り替えると、そのデータベースのマネージド Bean が設定されますが、別のデータベースの別の XPage に移動すると、そのマネージド Bean は更新されません! マネージド Bean セッションのスコープはデータベース固有のようですが、私の状況 (正しいか間違っているか) は、データベース全体でこの顧客 ID を覚えておく必要があることを意味します。

マネージド Bean に設定されたこの顧客 ID をデータベース間で記憶するにはどうすればよいですか? マネージド Bean は複数のデータベース間で機能しないため、標準のプロファイル ドキュメントを作成する必要がありますか?!

4

3 に答える 3

4

マネージド Bean のスコープはアプリケーション、セッション、ビュー、またはリクエストであり、これらのスコープには単一の nsf 内でのみアクセスできます。

(少なくとも?) 2 つのオプションがあります。

  1. すべての XPages ロジックを、すべての異なるバックエンド データベースにアクセスする 1 つの nsf に移動します。
  2. OpenNTFの XPages Starter Kit の一部であるサーバー全体のサーバー スコープを使用する

オプション1をお勧めします。

于 2013-09-26T08:39:12.130 に答える
1

他の唯一のオプションは、あるデータベースから別のデータベースに移動するときに、他のデータベースのコンテキストで Bean を再構築できるようにするクエリ文字列に何かを渡すことです。Java に慣れている場合は、Per のオプション 2 が最適です。

于 2013-09-26T09:21:53.577 に答える
0

次の 2 つの角度から見る必要があります。

Bean のソース コード (ロジック):

  • それをJARにバンドルし、すべてのNSFにコピーします
  • OSGi を使用してそのロジックを共有する

データ:

Bean の値は共有されません。アプリケーション、ビュー、およびリクエスト スコープでは、共有されることが予想されます。おそらく、セッション スコープ Bean を共有したいと思うでしょう。Bean のスコープを再考して他のスコープに変更し、セッション全体のプロパティを他の場所 (Cookie またはデータベース) に保持できると確信しています。その場合、Per Henrik Lausten が提案するように、Bean コードをサーバー全体にデプロイします。

于 2013-09-26T09:21:43.863 に答える