1

こんにちは皆さん、最近、Spring MVC の調査を開始しました。現在、Spring MVC を使用するプロジェクトに携わっています。その前に、Struts 2 フレームワークを調べました。ただし、私の意見では、クライアント側の MVC フレームワークにも独自のものがあるため、2 つのフレームワークには、MVC デザイン パターンである AngularJS の定義と実装が異なります。Spring MVC と Struts 2 の相違点について説明します。

Spring : ( Spring in Actionから引用)

1-コントローラー: Springでは、コントローラーはリクエストを処理し、いくつかのロジックを実行し(理想的には、このロジックはいくつかのサービスまたはビジネスロジッククラスに抽出する必要があります)、データを返すコンポーネントです。

DispatcherServlet の仕事は、リクエストを Spring MVC コントローラーに送信することです。コントローラーは、リクエストを処理する Spring コンポーネントです。しかし、典型的なアプリケーションには複数のコントローラーがあり、DispatcherServlet はリクエストを送信するコントローラーを決定するための助けが必要です。したがって、 DispatcherServlet は、1 つまたは複数のハンドラー マッピングを参照して、リクエストの次の停止場所を特定します。ハンドラー マッピングは、決定を行う際に、リクエストによって運ばれる URL に特に注意を払います。」 p166

2- モデル:ユーザーに戻してブラウザに表示する必要がある情報です。

「コントローラーによって実行されるロジックは、多くの場合、ユーザーに戻してブラウザーに表示する必要がある情報をもたらします。この情報はモデルと呼ばれます。」

3- ビュー: これは、HTML+CSS とモデル情報を組み合わせた最も明白なものです。

次に、Struts 2 が MVC をどのように実行するかを見てみましょう

Struts2: (Struts 2 in Action から引用)

1- コントローラ :コントローラは URL を適切なアクションにマップするコンポーネントであり、アクションはストラットでモデルを実装します ?! (春には、これはコントローラーの機能ではありません)。Struts には、FilterDispatcher というコントローラーが 1 つしかありません。Spring では、これは Controller とは呼ばない DispatcherServlet によって行われます。

「コントローラーの仕事は、リクエストをアクションにマッピングすることです」

「Struts 2 FilterDispatcher がコントローラーの役割を果たします」 p13

2- モデル: Struts のモデルは、ビジネス ログといくつかのデータ モデルを一緒に保持するコンポーネントであり、アプリケーションの状態を構成します。

「モデルはStruts 2アクションコンポーネントによって実装されています」 p13

「より専門的に言えば、モデルはアプリケーションの内部状態です。この状態は、データ モデルとビジネス ロジックの両方で構成されています」 p14

したがって、Struts のモデルは、ユーザー、契約、注文などのデータ モデルだけでなく、アプリケーションのロジックも含まれています。

これら 2 冊の本で表されている文字列とストラット 2 の 2 つの図を次に示します 。Spring MVC ここに画像の説明を入力

ストラット 2

ここに画像の説明を入力

さて、どの MVC が正しい MVC ですか?

フロントコントローラーMVCは誰に関連していますか?

事前に回答いただきありがとうございます。

4

3 に答える 3

4

このwikiリンクによると。http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller . MVC はデザイン パターンであり、Model はビジネス データ、検証ルールを保持し、ビジネス ロジックはあまり保持しません (私が知る限り)。

2- Model:The model, in struts, is a component that hold business log and some data model together this make the application state.

モデルは、setter と getter の単純な pojos です。検証ルールを除いて、モデルデータでビジネスロジックを使用したことはありません。

コントローラー(スプリング)/アクションクラス(ストラット)は、モデルのデータとビューを制御するコントローラーです。つまり、モデルを受信し、サービス層を呼び出してモデルを更新し、構成に基づいて適切なビューで応答するのは中心点です。

ビュー - 成功/失敗の応答時にユーザーに表示される最終的な出力に他なりません。

Dispatcher サーブレットと Filterdispatchers は、そのコントローラーを識別し (モデル データとハンドラーを注入)、ビューの受信を受け取る URL マッピング ハンドラーです。

地上では、スプリングとストラットの両方が、コントローラー、モデル、およびビューが行うべき基本に準拠しています。Spring と Struts の両方を要約すると、実装ロジックがこれら 2 つのフレームワーク間で異なるため、MVC パターンが使用されます。

于 2013-10-28T10:11:38.990 に答える
1

Web アプリケーションで Struts の MVC 構造をどのように使用しているかを説明します。

View : JSP + CSS + 必要なスクリプト

コントローラー:ここでは、HTTP GET/POST を実行し、コードを使用してすべてのアクションを解釈します。たとえば、ログアウト ボタンにはコード 1 があり、これは Form クラスを介して JSP から Java にマップされます。この値は、JS スクリプトを介してビューからコントローラーに送信されます。

モデル:ここで魔法が起こります。モデルは、ビジネス ロジック全体の処理を担当します。処理する必要があるもの、必要な計算やデータ変換が何であれ、ここですべてが行われます。

これは、私自身の経験に基づいて MVC が行うことの非常に実用的な例であり、それについての理論をたくさん読むよりも理解しやすいと思います。しかし、このすべてのポイントは何ですか? サーバー側で可能な限り多くの処理を行うため。この MVC 構造を採用することで、おそらく複雑な関数を JS でプログラミングすることを避け、代わりに古き良き Java でそれらを実行できます。私は JS があまり好きではないので、これは大きな利点であることがわかりました。

そうは言っても、あなたの Struts 2 ダイアグラムは正しい MVC だと思います。

MVC とその利点については、まだまだ語るべきことがたくさんあると思いますが、私の回答がお役に立てば幸いです。

于 2013-10-28T16:22:56.030 に答える