2012-01-24 9 views
2

私は、より多くの設計とアーキテクチャに関連する質問があります。私は古典的なMVCベースの背景から来て、JSF2で手を汚さなければなりません。私はJSF2(http://www.ibm.com/developerworks/library/j-jsf1/)に関するIBMの記事を読んで、私が全体的な概念を理解していると思います。混乱:古典的なMVCコントローラと比較してJSF2でのBeanの役割

私はJSF2トラフROOに連絡を取り始めました。私はROO(これはJSF2-Type Appにも当てはまるかもしれませんが、おそらくそうではないかもしれません)が非常に奇妙な/不明瞭な豆の使用をしているという気持ちがあります。一般にBeanの実際の役割は何かを私にはっきりと伝えていません。たとえば、私は単一のユーザーエントリを編集するためのフォームを持つビューを持っている場合、私はUserBean(おそらくメンバ変数に格納)を呼び出し、この変数トラフgettersにアクセスすることができます。私は今すべてのユーザーの概要をしたい場合、私は再びユーザーのコレクションを保持し、このコレクションのトラフゲッターにアクセスするUserBeanのビューをレンダリングします。以前の説明は、実際にjsfでやる方法です。これは、コントローラとしてステートフル・サービスとしてUserBeanをより多く使うことを意味します。

一般的なコントローラの状況では、特定の初期化されたデータを持つ別のコントローラと、このようにコントローラごとのロジックのコンテキストを分けて、すべてのタイプのアクション(リストユーザー、ユーザーの編集、ユーザーの表示など) 。

私はしばしば、コンテキスト固有のサービスを利用します。私は、アプリケーションの上にユーザーのしばしば普及を処理する場合、私はそれ自身に入れられる複雑かもしれないユーザー固有のロジックを処理するユーザーサービスを作成します。私は現在、例えば、ローンで生成されたBeanを調べると、プログラムでフォーム、入力フィールド、ラベル、ユーザーのリストを再度格納するメソッド、データが既にロードされているかどうかを示すブールフィールド、 UserService(または何でも)に入れられるように見えるメソッド。私はこれが、JSF2が使われることを意図しているのかどうか疑問に思っています。一つのコンテキストに関連するすべてをBeanにプッシュし、サービスを利用せず、すべてを扱う "スーパーコントローラbean"を作成します。

あなたは右の質問を取得する場合、私は本当に知りませんが、何が多分私は役立つだろう、

  1. 彼らはどこで道を豆を使用する非常に典型的なと賞賛サンプルアプリケーションへのヒントjsf2の機能と組み合わせて使用​​することを意図しています。たとえば、特定のエンティティの周りに基本的なCRUDユースケースを実装しています。 (1つの大きな混乱を招く点は、私のケースではROOは常にAJAXとModal-Dialogsのようなjavascriptを使ってCRUDロジックを実装しているということです.JSFでもっと古典的な方法があるのでしょうか?例えばURLベースのビューと、エンティティのリスト表示、編集、表示のための別々のビュー]を意味します)
  2. JSFパターン(これは多分、 J2EEパターンですか?)

ありがとうございました!

私が明確でない場合、特定のポイントを具体化するために私をプッシュしてください!

答えて

2

JSF1.2の記事へのリンクを投稿したJSF2のリンクです。 JSF2またはJSFを使用したい場合は、次のリンクを参考にしてください。

私は、JSFのこつを得るために、プレーンバニラJSFはなく、JSFとROOでスタートをお勧めします。あなたの質問

  • まずリンクに答えるために

    はJSFにあなたがAJAXベースとフォームを送信する古典方法の両方を持つことができ、簡単なJSFの例を提供します。 JSF 1.xのバージョンでは、ajaxはJSFの一部ではありませんでした。これは、RichFacesやPrimeFacesを中心にサードパーティのコンポーネントライブラリによって実装されていました。 JSF2では、ajaxの組み込みサポートがありますが、これは適用されません。サードパーティのコンポーネントはもはや必要なくなり、いくつかの拡張機能を提供します。このlinkを使って、JSF 1.xとJSF 2の違いを調べることをお勧めします。

  • パターンJSFに固有のコードはモデルビューコントローラで分類できます。典型的な場合Personはモデルを表し、PersonMangedBeanはビュー(jsp/facelets)からデータを取得する中心的な役割を果たすコントローラの役割を果たし、Bean自体やサービスBeanのデータを処理した後、クラシックビューへのナビゲーションはlistPersons.xhtmlです。
  • JSFマネージドBeanは、そのBean内のすべてのものを処理する「スーパーコントローラBean」ではありません。私はあなたが言及したように物事を分類しようとします。すなわち、すべてのビジネスロジックがEJBまたはSpringマネージドBeanであるサービスレイヤを持ち、少なくともビジネスロジックをビューテクノロジから切り離してJSFを使用して、サービス(サービス)を他のどこかで再利用できます。正しく設計されていればライブラリとして使用できます。
  • ヒント:JSFはアクションベースではなく、独自のライフサイクルを持つコンポーネントベースのフレームワークであり、そのライフサイクルを把握すれば、フレームワークの時間と適切な理解を大幅に節約できます。このlinkでもJSF 1.xはJSF2にも有効です。ライフサイクルの基本的な理解のためです。

は、この情報がお役に立てば幸いです。

+0

gbagga!まずはありがとう!結局、JSFは、あなたが言ったように、よりコンポーネント指向のアプローチで、model2パターン自体に適合しているようです。私はそれを感じるために資源を読んでいきます。それはおそらく0から始まり、私の任意の(ROO)-Magicに騙されないように手動で処理する方が良いでしょう。再度、感謝します! –

+0

あなたは大歓迎です。 –

+0

@thedudeがもう1つ追加されましたlink @ stackoverflow jsf wiki –

関連する問題