2012-04-16 3 views
2

ここでは馬鹿かもしれませんが、私はxpagesとマネージドビーンに関する質問があります。私は、ロジックを、エンティティ(多かれ少なかれドキュメント)に対応するBeanに動かすことによって、ロジックとプレゼンテーションを分離しようとしています。私はデータプロバイダクラスのフェッチと設定データを持っています。これはうまくいっていますが、アプリケーションは1つのxpageで動作しますが、アプリケーションがリレーションや複数のxpageで高度化するにつれて、私は問題に遭遇します(私はhttp://blog.mindoo.com/web/blog.nsf/dx/18.03.2011104725KLEDH8.htm?opendocument&comments#anc1のインスピレーションを見ています)。複数のxpagesを持つマルチプルマネージドビーンズ

私が間違っていない場合は、異なるxpagesに異なるマネージドBeanを割り当てることができないため、faces-config.xmlで異なるxpagesへの異なるデータプロバイダクラスとビジネスロジックBeanを設定することはできません。今私は間違った方法でこれについて行っているかもしれませんが、どんな指針も高く評価されます。

ベストについて オロフ

答えて

1

特定のxpages(私が知っている限り)のマネージドBeanを(faces-configで定義したように)割り当てることはできません。これらはアプリケーション固有のものです。私はあなたが工場パターン/クリエイターパターンのようなものを探していると思います。これらは、特定のクラスのインスタンスを作成するために使用されるデザインパターンです。詳細はFactory method pattern WikipediaまたはCreational patterns wikipediaを参照してください。

たとえば、ピザのウェブサイトを作成するときは、押しているボタンに応じて特定の種類のピザを作成する工場を持つことができます。各ピザはメモリ(Bean)で作成され、カスタムコントロールのデータソースとして使用されます。顧客が注文する準備が整うと、ピザはnotesdocument(保存された状態)に保存され、その顧客の注文として他のすべての商品と一緒に変換されます。

ピザを番号/ IDで取得できるかどうかを工場に尋ねるだけで、その特定のピザを再度検索したい場合(たとえば、顧客が注文したピザを確認する場合など) notesdocumentからのピザ。一度ビルドし、多くを使用してください。

基本的に、ページごとに1つのアプリケーションごとに複数のマネージドBeanを用意する必要はなく、必要なときにアプリケーション全体で使います。

+0

良い答えをありがとう、今私はそこに行くことを知っている。 – Olof

+1

マネージドBeanは、SessionFacade(デザインパターン)のようなスコープを持ち、アプリケーションのパブリックAPIを表すことができます。 faces-config.xmlで定義したスコープに基づいて、Beanのライフサイクルを処理できます。 –

1

「グローバル変数」などの豆を見て、あなたは別の名前を定義することによって、異なる機能を持つことができるようにします。たとえば、「請求書」、「顧客」、「注文」、「注文アイテム」などです。それはあなた次第です。

+0

非常に迅速な回答ありがとうございます! 私はそれを考えていますが、異なるエンティティのために異なるサブクラスを用意して、それをもっと管理しやすいものにしたいと思います。 – Olof

+0

あなたの問題が何であるか分かりません。すべての豆。あなたの質問を編集し、あなたが直面しているセットアップと問題についての詳細を追加してください。 –

関連する問題