Apache Struts

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索
Apache Struts
Apache Strutsロゴ
開発元 Apacheソフトウェア財団
初版 2001年(11年前) (2001
最新版 2.2.3.1(2011年9月7日(6か月前) (2011-09-07
プラットフォーム クロスプラットフォーム
種別 Webアプリケーションフレームワーク
ライセンス Apache License 2.0
公式サイト http://struts.apache.org
テンプレートを表示

Apache Struts(アパッチ・ストラッツ)は、Apacheソフトウェア財団のApache Strutsプロジェクトにて開発されているオープンソースJava Webアプリケーションフレームワークである。

目次

[編集] 概要

元々はクレイグ・マクラナハン英語版の作成したソフトウェアであり、2000年5月にApacheソフトウェア財団に寄付された。当初はJakarta Projectに位置しており、Jakarta Struts(ジャカルタ・ストラッツ)と呼ばれていた。2005年にApacheのトップレベルプロジェクトに昇格した。

Apache Tomcatなどのサーブレットコンテナ上で動かすことができる。サーブレットJSPによる開発環境下に登場したStruts1は広く受け入れられ、2005年頃にはJava Webフレームワークのデファクトスタンダードと呼ばれるほどの普及を見せていた[1][2]。しかしソフトウェア技術の進歩とともに欠点も多く指摘されるようになり、2007年にリリースされたStruts2ではそれまでの仕組みを捨て、WebWork2として開発されていた別のフレームワークをベースとしたものへと置き換えられている[3]

フレームワークにはModel View Controllerアーキテクチャが適用されている。類似したフレークワークとしてJSF (Java Server Faces) や Spring MVCフレームワークがある。

[編集] 特徴 (Struts1)

整備されたJSPカスタムタグによってJavaコードはJSPファイルとは分離され、 従来のJSPのように HTMLタグの中に<%%>で囲まれたスクリプトレットであるJavaソースコードを混在させる必要なく読みやすく洗練されたコーディングをできるようになる。

主なStrutsのタグライブラリ

  • HTML
    HTMLのフォーム部分で利用する
  • Logic
    条件分岐や繰り返しなどの制御ロジックを提供
  • Beans
    Modelで定義されたJavaBeansにアクセスする機能を提供
  • Nested
    属性名の記述を省略可能にする
  • Tiles
    複数のJSPで利用する記述を共通化するテンプレート機能を提供

またStrutsではActionServletが用意されており、画面の遷移をコントロールする設定ファイル(struts-config.xml)を変更するだけで容易に遷移先を変えることができる機能を提供している。 アクションサーブレットでは画面で入力された内容を検査する Validator の機能が用意されており、設定ファイル(validator-rules.xml)を変更するだけで入力チェックの仕様を変更することが可能である。入力チェックするデータは一旦アクションフォームと呼ばれるBeansに格納される。

[編集] 特徴 (Struts2)

Struts2では、Struts1と比べて下記のような改善がなされている[3]

[編集] 派生版

Super Agile Struts (SAStruts)
Seasarプロジェクトが公開している、Struts1と独自のDIコンテナであるSeasar2をベースに、より素早い開発を行うことを目指したフレームワーク。
TERASOLUNA Server Framwork for Java
NTTデータが公開している、Struts1とSpring, iBATISをベースに、独自の拡張を行ったサーバサイドフレームワーク。

[編集] 脚注

  1. ^ 普及進む無償のフレームワーク「Struts」”. ITPro (2002年12月16日). 2011年11月26日閲覧。
  2. ^ 手を握るStrutsとSpring、今後の行方は”. マイナビニュース (2005年10月17日). 2011年11月26日閲覧。
  3. ^ a b Struts2入門”. CodeZine (2008年3月21日). 2011年11月26日閲覧。

[編集] 関連項目

[編集] 外部リンク

個人用ツール
名前空間

変種
操作
案内
ヘルプ
ツールボックス
他の言語