はじめに
Struts Webアプリケーションフレームワークが最初にリリースされてから10年近くが経ち、Strutsを利用して開発されたアプリケーションの数は数千に達します。Strutsは、当時から現在に至るまで、JavaベースのWebアプリケーションを作成するうえで最も人気の高いフレームワークです。Strutsにも欠点がないわけではありませんが、信頼性に優れ保守しやすいWebベースソフトウェアの構築を簡単に行うことができます。現在、Strutsを使用するアプリケーションの数は、競合する他のすべてのWebフレームワークを使用するアプリケーションを合わせた数の2倍はあるでしょう。JSF(JavaServer Faces)など、Strutsの後に登場した多くのフレームワークがStrutsの概念の多くをそのまま利用していることは、Strutsに対する賛辞に他なりません。
とはいえ、Strutsは決して完璧ではなく、近年は、別のソリューションの利用が大きく増えてきました。開発者の要望に対応するために、Strutsチームは、フレームワークのメジャーアップデートをリリースしました。これが、ご存知の「Struts 2」です。
本稿の目的は、Struts 1の開発者に対して、コードを参照しながらStruts 2の動作の概要を説明することです。そのため、Struts 1アプリケーション用とStruts 2アプリケーション用の2回分のサンプルアプリケーションを目にすることになります。ここですべてを理解することはできませんが、Struts 2の概要を知るには十分でしょう。
背景
Strutsが最初にリリースされたのは2001年でした。中心的な役割を果たしたのはCraig McClanahan氏でした。Struts以前のWebアプリケーションは、多くの場合、JSP(JavaServer Pages)スクリプトレット、Javaサーブレット、各種Javaクラスなど、Javaのさまざまな要素がごちゃごちゃと混在していました。このように場当たり的に作成されたアプリケーションは、一般にはテストが困難で、さらには保守することも困難でした。
StrutsによってMVC(Model-View-Controller)アーキテクチャが普及しました。MVCを使用することで、アプリケーションを拡張するための柔軟なモジュール式コードを作成できるようになりました。MVCスタイルの開発は、Webアプリケーションを作成するための優れた手法であることが経験的に証明されています。
ここ数年、Strutsの欠点を解決するべく、競合フレームワークが台頭してきました。そこで、Strutsコミュニティでは、これらの問題を解決するために次世代のStrutsに取り組み始めました。そのうちにWebWorkというフレームワークがStrutsの有力な後継者として名を馳せてきました。最終的に、StrutsチームとWebWorkは力を合わせることを決断し、これがStruts 2の出現へとつながりました。Struts 2は、多くの点でStruts 1より大幅に改善されています。