Apache Struts
概要
Apache Strutsとは、Javaを用いてWebアプリケーションを開発するためのフレームワークの一つ。Apacheソフトウェア財団(ASF)が開発を主催し、オープンソースソフトウェアとして公開している。Struts1
2000年に開発が始まった初期のStruts(バージョン1.x系統)は、仕様が刷新されたバージョン2.x系統と区別するため現在では「Struts1」と呼ばれている。
MVC(Model-View-Controller)というソフトウェア設計モデルに基づいており、JavaサーブレットやJSPを組み合わせてアプリケーションを構築する際に必要となる諸機能を提供する。ソフトウェアの挙動の多くをXMLベースの設定ファイルに記述することができ、Javaプログラムのコーディングを削減することができる。
利用者からのリクエストを一括して受信し、開発者が用意する適切なクラスに割り振るコントローラサーブレットや、JSPで利用するタグライブラリ、JavaBeansプロパティの自動設定機能、表示の国際化を支援する機能などが含まれる。
2000年代に広く普及したフレームワークで、日本ではSeasarプロジェクトによる拡張である「SAStruts」(Super Agile Struts)もよく知られている。Struts2系統への移行に伴いStruts1系統は2008年に開発終了し、2013年にサポート期間が終了している。
Struts2
2007年に開発が始まった新しいバージョンで、「WebWork」という別のソフトウェアがStrutsプロジェクトに統合されて改称したものであるため、内部の仕様などはStruts1とは実質的には別物となっている。
主な変更点として、アノテーションや「設定より規約」(CoC:Convention over Configuration)原則の導入による設定ファイルの削減、依存性注入(DI:Dependency Injection)の採用による開発の効率化、制約の多かったアクションクラスをPOJO(Plain Old Java Object)として自由に開発可能、JSPからJavaオブジェクトにアクセスする独自の式言語OGNL(Object Graph Navigation Language)の導入などがある。