4

私が取り組んでいる Web プロジェクトの複雑さが増すにつれて、MVC 構造を含める必要性がますます緊急になっています。私のモデル クラスは適切に定義されていますが、ビューとコントローラーのコードは一緒になってしまう傾向があります。私はサイトでもかなり重い AJAX を使用しており (主に RichFaces jsFunctions)、状況が少し複雑になっています。

JSF2 を使用して MVC を実装するための優れた戦略を見つけた人はいますか? プロジェクトに別のフレームワーク (Spring MVC など) を導入したくありません。

これまでのいくつかのアイデアのうち、まだ始めていないもの

  • 重い ajax を使用するページの場合、選択したタブ、選択した項目を記憶し、フィルター処理されたデータのリストを提供するための「ビュー」Bean を用意します。
  • モデルの変更などのアクションを処理する「コントローラー」Bean を用意する
  • JSF ページとコントローラの間を行き来する「コマンド」Bean があります。jsFunction はコマンド Bean にパラメーターを設定し、呼び出しcommand.execute()により、コマンド Bean はコントローラー Bean の正しいメソッドを呼び出してアクションを実行します。「コマンド」Bean には、完了時に呼び出される JavaScript が含まれている場合があります。また、再レンダリングするページの領域を指定することもできます。

何かご意見は?

編集

私がよく目にするのは、ユーザーの選択を追跡し、モデルを更新し、フィルターされたリストを取得するなど、 あらゆることを行うマネージド Beanです。

現時点では JSF 1.2 を使用しているため、アクション/アクションリスナーをパラメーターで使用することはできません。たとえば、マネージド Bean にはm_selectedDate、 への呼び出しで選択された日付をバックエンドに供給することだけを目的とするような変数が含まれていますupdateFilteredItemsBasedOnDate()。余分な変数は一時的なものにすぎないので、なくなるといいですね。パラメータ付きのJSF 2のELが役立つはずですが、代替ソリューションが利用可能かどうか知りたいです。

MVC をマネージド Bean に適用する方法や、すべてを実行しようとする大きな Bean にならないように関心を分離する方法があるかどうか、興味があります。

4

3 に答える 3

3

デザインパターンをお探しですか?MVC を探している場合は、BalusC の回答で十分です。それ以外の場合は、これを確認してください

http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns.htm

こちらもチェック

于 2010-12-07T05:14:59.413 に答える
1

おそらく、必要なのは階層化されたアーキテクチャです。これまでの MVC アーキテクチャには、さらに懸念事項があります。たとえば、View、Business Logic、および DataAccess レイヤーでアーキテクチャをレイヤー化し、各レイヤーでほとんどのコモンズ デザインとエンタープライズ パターンを実装できます。

そのうちの 1 つで MVC の実装を開始しましたが、「懸念事項の分離」を考慮することをお勧めします。

このようにして、よく整理され分離されたコードを実現できます。

この簡単な説明がお役に立てば幸いです。

よろしく。

于 2012-07-10T22:13:41.803 に答える
0

JSF で MVC をより適切に使用する方法を調べるよりも、Bean を管理するより良い方法を確認する必要があります。JSF 自体には、MVC がより適切に実装されているためです。MVCを実装するより良い方法として、ここで何を意味するのか正確にはわかりません。

Balusc がコメントで述べたように、JSF 自体にはアプリケーションに十分な MVC があります。懸念事項を分離したい場合は、ビジネス ロジックをヘルパー クラスに分離し、プレゼンテーション ロジックのみを Bean に記述することをお勧めします。

Bean をビジネス ロジックに使用するか、マネージド Bean から分離するかについては議論があります。それはすべて、アプリケーションとドメイン固有に依存します。

ありがとう、クリシュナ

于 2010-12-12T01:56:32.610 に答える