WebアプリケーションでのStrutsフレームワークについて
JakartaプロジェクトのStrutsフレームワークは、Web開発者が、Model-View-Controller(MVC)デザイン・パターンのモデル2を実装するJSPおよびサーブレット・アプリケーションを作成するために役立ちます。具体的には、MVCモデル2を使用すると、Webアプリケーション開発者は、表示コード(HTMLやタグ・ライブラリなど)をアクション処理コード(JavaおよびJSPスクリプトレット)から明確に分離できます。次に説明するように、Strutsフレームワークに基づくWebアプリケーションは、理解と保守の両方がより簡単になります。

MVCモデル2パラダイムはStrutsベースのWebアプリケーションでどのように実装されているか
次の情報は、MVCモデル2デザイン・パターンの概要を示します。StrutsがMVCデザイン・パターンを実装する方法の詳細は、JakartaプロジェクトのWebサイト(http://jakarta.apache.org/struts/userGuide/index.html)の『Introduction to the Struts User's Guide』を参照してください。
- MVCベースのシステムのモデル部分は、一般に、システムの内部的な状態を定義するJavaBeanクラスから構成されます。これらは、状態を変更するために実行できる処理も指定します。
BC4Jデータ・アクセス・フレームワークを使用する場合、このレイヤーはモデル全体を実装します。それ以外の場合は、モデルを実装するクラスを作成する必要があります。Strutsと結合されたBC4Jの利点の詳細は、「ビジネス・コンポーネントWebアプリケーションでのStrutsサポートについて」を参照してください。
- Strutsベース・アプリケーションのビュー部分は、一般にJSPテクノロジを使用して構成されます。JSPページには、テンプレート・テキストと呼ばれる静的なHTML(またはXML)テキストに加えて、(ページ・リクエスト時に)特別なアクション・タグの解釈に基づいて動的コンテキストを挿入する機能があります。JSP環境には、カスタムJSPタグ・ライブラリ(Strutsタグ・ライブラリなど)のセット、標準JSPアクション・タグ(JavaServer Pages仕様に記述されているタグなど)および独自のJSPカスタム・タグ・ライブラリをインストールする機能があります。
BC4Jデータ・アクセス・フレームワークを使用する場合は、JDeveloperのJSP生成ウィザード、およびJSPページでデータ・バインドされた動的コンテンツを表示できるようにするカスタム・タグ・ライブラリを利用できます。ビルトイン・データ・アクセス・タグ・ライブラリの詳細は、「BC4Jデータ・タグについて」を参照してください。
- アプリケーションのコントローラ部分は、クライアント(通常は、Webブラウザを起動しているユーザー)からのリクエストの受信、実行するビジネス・ロジック機能の決定、および、ユーザー・インタフェースの次のフェーズを生成する役割を適切な表示コンポーネントに委譲することなどに集中します。Strutsでは、コントローラのプライマリ・コンポーネントは、ActionServletクラスおよびRequestProcessorクラスのサーブレットです。
BC4Jデータ・アクセス・フレームワークを使用している場合は、RequestProcessorが拡張され、BC4JRequestProcessor
と呼ばれます。Strutsと結合されたBC4Jの利点の詳細は、「ビジネス・コンポーネントWebアプリケーションでのStrutsサポートについて」を参照してください。
Strutsフレームワークを実装する利点
MVCパラダイムに従わないWebアプリケーションを開発することもできますが、通常、Strutsフレームワークは開発者に大きな利点を提供します。
- Strutsでは、JSPページでフロー制御を外部化できます。JSPファイル内に様々なJSPページへの物理リンクを指定するのではなく、JSPファイルにはStrutsにより定義された論理URIが含まれます。Struts URIは、HTTPリクエストのコンテキストに応じて異なる物理JSPページを返すアクションにマップされる、論理ページ・リクエストを定義します。
- Strutsは、実際のJSPファイル・コンテンツの開発をユーザー・インタフェース生成のみに制限することにより、これを単純化します。本来はJSPファイル内にあるJavaは、実行時にJSPページが起動する別のサーブレット・アクション・クラスにあります。
- Strutsは、開発ロールをユーザー・インタフェース設計者(HTMLまたはタグ・ライブラリ・ユーザー)とJSPアクション・ハンドラ開発者に分離します。たとえば、ある人がHTMLまたは適切なタグ・ライブラリのみを使用してJSPページを作成し、別の人がJavaのページ・アクション処理クラスを独立して作成できます。
- Strutsは、本来はプロジェクトのすべてのJSPページ内にあるJSPアクションを、単一の構成ファイルに外部化します。これにより、デバッグが単純化され、再利用が促進されます。
- Strutsは、本来はプロジェクトのすべてのJSPページ内にある文字列リソース(フォーム・ラベルなど)を、単一のファイルに統合します。これにより、JSPアプリケーションのローカライズ・タスクが単純化されます。
JDeveloperでのStrutsの使用の詳細は、「JDeveloperでのStrutsサポートについて」を参照してください。
関連項目
JSPページおよびJDeveloper Toolsについて
BC4J JSPフォームについて
JSPおよびHTMLページの操作
ビジネス・コンポーネントからデータ・バインドされたJSPページを生成する方法