Struts 2の仕組みと構造

では、Struts 2アプリケーションの構造を見てみましょう。前述のようにMVCパターンのモデル2アーキテクチャとなっています。
Controller
コントローラ部がStruts 2のコア部分であり、FilterDispatchがすべての制御を担っています。intercetors(インターセプタ)とは実際の処理を実装したコンポーネントで、HTTPリクエストの処理や、結果の後処理、例外処理など、Struts 2で複数提供されています。インターセプタについては、回をあらためて説明します。
Model
モデル部は、前述のActionクラスとなっていて、アプリケーションで用意するクラスです。リクエストURIに対応する形になり、Struts 2側でリクエストごとにオブジェクトの生成が行われます。Struts 1では、このあたりの構造がゴチャゴチャしていましたが、Struts 2ではロジックとデータがActionクラスにまとまり、すっきりしたオブジェクト指向的な設計になっています。
View
ビューでは、URIリクエストの結果ページを表示します。デフォルトでは、HTMLテンプレートとしてJSPが利用されます。その他、FreeMarker、Velocityといったテンプレートも使えます。Struts 2が提供するカスタムタグを用いて、Actionクラスのデータにアクセスすることになります。
以上の大まかな説明では今ひとつイメージがわかないかもしれません。そこで次は、実際のソースや設定ファイルを用いて説明することにしましょう。本稿のとおりに自分でWebアプリケーションを作っていけば、ファイルの構成や内容を通して、Struts 2の理解が深まると思います。
動作環境と開発環境
Struts 2が動作する環境は、少なくとも次のバージョンが必要です。
- Servlet API 2.4
- JSP API 2.0
- Java2 SE 5.0
従って、JSP/サーブレットコンテナとしてTomcatを利用する場合は、バージョンは5.5.25以上が必要となります。本連載の解説では、ローカルのWindows環境でTomcat 6.0.16を利用し、WebサーバとしてTomcat自身のWebサーバ機能を使う方式を前提とすることにします。また、開発ツールには、多くの選択肢があるなかから最も一般的だと思われるEclipse 3.3 EuropaとTomcatプラグインを用いて、その開発手順を紹介します。
開発環境のインストール
JavaSE、Tomcat、Eclipse 3.3、Tomcatプラグインのインストールについては、皆さんご存じだと思いますので、あらためて解説はしません。WINGSプロジェクトのサーバサイド環境構築設定ページなどを参考にしてください。
Struts 2の入手
本稿執筆時の最新バージョンは、Struts 2.0.11です。Struts 2のダウンロードページから入手できます。ダウンロードページには、いろいろなパッケージが並んでいます。今はFull Distribution(struts-2.0.11-all.zip)を選び、適当なところに解凍しておきましょう。zipファイルには、ドキュメントやサンプルコード、Struts2本体やプラグインのJARファイルなどが含まれています。その中から必要に応じて、参照・利用することになります。
| パッケージ名:ファイル名 | 概要 |
| Full Distribution: struts-2.0.11-all.zip | 以下のものすべて含まれています |
| Example Applications: struts-2.0.11-apps.zip | サンプルアプリケーション |
| Blank Application only:struts2-blank-2.0.11.war | 最小のサンプルアプリケーション(Example Applicationsにも含まれています) |
| Essential Dependencies Only: struts-2.0.11-lib.zip | ライブラリのみ |
| Documentation: struts-2.0.11-docs.zip | サイト上のドキュメント一式 |
| Source: struts-2.0.11-src.zip | Struts 2のJavaソースファイル |
| Alt+rnative Java 4 JARs: struts-2.0.11-j4.zip | Java2 SE 1.4の環境で動作するようにしたStruts 2 |

