JSF実装が提供するさまざまなUIコンポーネントのセットとは別に、Spring MVCでJSFを使用する利点は何ですか? どちらも MVC であり、パースペクティブ ナビゲーション処理が異なります (どちらも理解しやすいという意味で)。アプリケーションで JSF と Spring MVC を一緒に使用すると仮定すると、設計、実装、および保守にどのような利点があるでしょうか?
3 に答える
どちらも MVC ですが、JSF はコンポーネント指向で、Spring MVC はアクションベースです。
これらの用語が正確に何を意味するのかは自分で調べるのが一番ですが、要するに、JSF を使用すると、高レベルのビジュアル ビルディング ブロック (スライダー、パネル、プログレス バーなど) を UI に合成できます。
Spring MVC は、実際の UI についてあまり語っていません。これは、URL パスとそのパラメーターにマップするコントローラーを強調します。処理後、ビューをレンダリングするもの (通常は JSP ですが、最近は Thymeleaf がよく使用されます) に転送します。
JSF は Java EE の一部であり、Spring MVC の「クラスから URL へ」のバインディングの側面をいくらか備えたフレームワークも付属しています。JAX-RS。ただし、JAX-RS 自体は MVC でも要求ベースの Web フレームワークでもなく、Web サービス フレームワークです。
1 つのアプリで 2 つの異なる Web フレームワークを使用するのは非常に混乱するため、お勧めできません。
男を待って!
MVCは、次の間に(アプリケーションアーキテクチャで)概念的な分割を作成するアーキテクチャパターンです。
- モデル:アプリケーションで使用されるデータにアクセスするためのメソッドを提供します
- ビュー:モデルに含まれるデータの表示を処理し、ユーザーおよびエージェントとの対話を管理します
- コントローラ:ユーザーから(通常はビューを介して)コマンドを受け取り、他の2つのコンポーネントのステータスの変更を実装します
このスキームは、とりわけ、コントローラーとモデルからのアプリケーションロジック(このコンテキストでは「ビジネスロジック」と呼ばれることが多い)と、ビューをロードするためのユーザーインターフェイスとの間の従来の分離も意味します。
したがって、MVCはアーキテクチャパターンであり、特定の言語や特定のテクノロジーとは関係ありません。Spring MVCは、このパターンを実装するJavaフレームワークです!!!
ビューについては、ビュー内で直接タグライブラリを使用して宣言する必要があるいくつかの既成のコンポーネント(特定のビューフレームワークによって実装される)を提供するJSF(Java Server Faces)を含むさまざまなテクノロジーを使用できます。
現在、PrimeFacesやIceFacesなど、JSFから派生した無料のViewフレームワークが多数あります。
JSPとそれによって派生したすべてのフレームワークは、プログラマーからのAJAXの隠蔽をネイティブにサポートしているため、開発者はそれについて心配する必要はありません。
このビューテクノロジーのすべての力を説明するPrimeFacesコンポーネントショーケースをご覧になることをお勧めします。
http://www.primefaces.org/showcase/ui/home.jsf
たとえば、AJAX FORMを深く知らなくても、特にJavascriptを知らなくても、使用しなくても処理できます。
これは、ショーケースで見つけることができる最も単純なAJAXフォームの例です:http://www.primefaces.org/showcase/ui/pprUpdate.jsf
この種のビューテクノロジーを使用すると、フォーム、メニュー、その他多くのコンポーネントに多くのコンポーネントを使用できます。
主な利点は、コンポーネントの代わりに使用してJavaScriptを1行書く必要がないことです。
他の回答の定義を繰り返しません。JSF (およびそのコンポーネント スイート) を使用すると、アプリケーションをより迅速に構築することができます。これは、すべてを 1 回接着し、ビジネス ルールに集中する (またはアプリに価値を追加する) だけで、コンポーネントを組み合わせて UI を構築するだけであるためです。主にJavascript用にコンポーネントまたはコンサートをテストします。
Spring MVC ではゆっくりと開始しますが、コンポーネント (主に JSF と通信する Javascript UI のみ) に依存する代わりに、必要なものを自由に実装したり、手間をかけずに Web サービスを実装したりできます。ただし、そのような UI 構造をテストし、テストし、テストする必要があります。
ハイブリッドを探している場合は、Spring Web Flowが役立つかもしれません。これにより、Spring MVC コントローラー用の JSF コンポーネントと優れた抽象化レイヤーを使用でき、必要に応じてそれらを使用することもできます。