Powered by SmartDoc

MVCモデル2とJSF

MVCモデル2の概要

MVCモデル2とは

ソフトウェア開発には、「Model-View-Controller (MVC)」と呼ばれている方法論があります。この方法論では、アプリケーションを構成するコンポーネントが、「モデル(Model)」・「ビュー(View)」・「コントローラ(Controller)」と名づけられた、3つの部分に分けられています(図3.1[MVCモデル2])。

MVCモデル2

最近のJ2EEとその関連技術では、モデルにJavaBeansを使い、ビューにJSPを使い、コントローラにServletを使う開発手法が採用されています。このJ2EEの手法は、「MVCモデル2」と呼ばれています。

では、この「モデル・ビュー・コントローラ」について見てみましょう。

モデル

「モデル」は、アプリケーションのデータと、データの処理をするプログラムをまとめた部分です。この「データの処理をするプログラム」のことを「ビジネスロジック」と言います。

JavaBeans (あるいはそのコレクション)がモデルとして利用されます。

ビュー

「ビュー」は、「モデル」の表示を担当する部分です。J2EEでは、JSPがよく利用されます。

ビュー

「コントローラ」は、「モデル」と「ビュー」を制御する部分です。Servletが担当します。

処理の流れ

MVCモデル2を用いたWebアプリケーションの処理の流れは、次のようになります。

まず、ServletがHTTPから要求を受け取ります。そして、データベースへのアクセスなどの必要な処理をします。

処理した結果はJavaBeansに格納します。ServletはJavaBeans (または、Beansをまとめたコレクション)をJSPに渡します。

JSPはタグライブラリを駆使して処理結果を出力します。このとき、JavaBeansのプロパティを出力することになります。

JSFでのMVCモデル2

JSFでもMVCモデル2を採用しています。MVCモデル2の3つの部分のうち、JSFは主にViewとControllerを担当しています。それでは、それぞれの部分について見てみましょう。

コントローラ

JSFでは、"FacesServlet"というServletがコントローラとなります。Webブラウザからの要求は、すべてFacesServletが処理します。

ビュー

ビューはJSPが受け持ちます。

JSP独自のタグライブラリを用いて、UIコンポーネントを表示することになります。このとき、「レンダラ」という機能によって、タグがどのようなHTMLを出力するか切り替えることができます。

また、後述するJSF Expression Language (JSF EL)を利用できます。

モデル

モデルにはJavaBeansを利用します。JSF ELによって、JavaBeansの「プロパティ」を便利に活用できるようになっています。

パラメータとビジネスロジック

HTMLのフォームから入力されたパラメータは、Backing Bean (またはManaged Bean)と呼ばれるJavaBeansに格納されます。

また、アプリケーションで使うビジネスロジックも、Backing Beanに記述できます。

faces-config.xml

JSFでは、faces-config.xmlというファイルに、次のような情報を記述します。