View HelperパターンによるJSPファイルの実装

第1回 View Helperパターンの効用と、実装に際しての基本的なアプローチを学ぶ
サン・マイクロシステムズが公開する「J2EEパターン」に含まれるパターンの1つ、「View Helperパターン」は、Webアプリケーションのプレゼンテーション層、より具体的に言えばJSPファイルの実装の際に威力を発揮する。本稿では、2回にわたり、このView Helperパターンを使ったJSPファイル用ヘルパの実装方法や、Webアプリケーション開発に役立つヘルパを紹介していく。その初回となる今回は、View Helperパターンの効用、そして同パターンをJSPファイル開発で利用する際に有効なアプローチについて説明する。

JSPファイルの実装における

View Helperパターンの効用

 一般に、JavaによるWebアプリケーションのプレゼンテーション層には、いくつかのJSPファイルが含まれる。そして、それらのJSPファイルは、HTMLコードや画像ファイルなどから構成される。

 では、MVC(Model-View-Controller)のModel、すなわちビジネス・ロジック層に格納された動的コンテンツを、それらのJSPファイルによって表示する場合、どのように処理を実装すべきだろうか。おそらく、読者の皆さんは、Modelを表示するためのJavaコードをJSPファイル内に埋め込むのは、極力避けたいと考えるだろう。

 そうしたときには、View Helperパターンを使えばよい。View Helperパターンでは、Model内のデータを、アプリケーションのプレゼンテーション層で必要とされる形式に変換する役割を、「ヘルパ(Helper)」と呼ばれるオブジェクトが担う。このヘルパをJSPファイルと組み合わせて使うことで、JSPファイル内に多数のJavaコードが埋め込まれるのを避けることができるのである。

 ここで、WebアプリケーションにおけるModelが、Controllerの役割を担うコントローラ・サーブレットにより、リクエストの属性としてリクエストに関連づけられるということを思い出していただきたい。そうしたModelにJSPファイル内からアクセスする方法としては、「JavaコードをJSPファイル内にスクリプトレットとして埋め込む」、「式言語(EL:Expression Language)を使う」、「ヘルパ経由でデータを取り出す」という3つの方法が考えられる。

 ただし、「プレゼンテーション層とビジネス・ロジック層の分離」という原則を重んじれば、プレゼンテーション層のあちらこちらにJavaコードを埋め込むよりも(つまり、スクリプトレットを使うよりも)、いくつかのヘルパを使い、プレゼンテーション層用にModelを加工してやるほうが理にかなっていると言えるだろう。

 読者のご想像どおり、この方法では、Javaコードが使いやすいヘルパに置き換えられるため、Webデザイナーによるプレゼンテーション層の開発が非常に楽になる。そのためには、当然ながら、開発者がヘルパのカタログ(情報)を公開し、それらの使用法をきちんと説明することが不可欠になる。

 ただし、この方法には1つ問題がある。アプリケーション設計者がヘルパの処理対象であるModelを準備する前に、Webデザイナーが画面開発を開始する場合、Webデザイナーはヘルパのカタログを見ることができないのだ。

 この問題に対処するためのテクニックとしては、「Modelが存在しない場合に備えて、ヘルパ内に一連のダミー・データを用意しておく」という方法がある。また、別のアプローチとして、「ダミーのModelを用意する」という方法もある。いずれにせよ、開発者の作業を待ちのためにWebデザイナーの作業が滞ることのないよう、十分に配慮しなければならない。

 それでは以下に、ヘルパを使うメリットを列挙しておこう。

●プレゼンテーション層用のコンポーネントが標準化され、アプリケーションのルック&フィールの一貫性が高まる

●JavaコードがWebデザイナーから隔離され、代わって一連の使いやすいModelアクセス用のヘルパが提供される

●Modelが存在しない場合にはダミー・データを表示する仕組みをヘルパ内に用意できるので、Webデザイナーは、アプリケーションの開発状況に左右されることなく画面開発を行える

●ヘルパがプレゼンテーション層とビジネス・ロジック層との間の媒介役を果たすので、両層の明確な分離を実現できる


PAGE TOP