@いう間にWebアプリを作れる「Struts 2」入門


【特集】Strutsは“2”を使えば、サルでも幸せに

ヤスダネットワーク
関川 晶子
2009/1/8


Strutsに“2”が存在することを知ってましたか?


今回の主な内容

Strutsに“2”が存在することを知ってましたか?
コラム 「サルが知りたいStruts 2の疑問」

Struts 2をインストールしてみよう

@(あっと)いう間に「こんにちは! Struts 2」
「こんにちは! Struts 2」の動作原理
4種類のResultアノテーションを使い分ける
コラム 「式言語OGNLとは?」
潜在的な可能性を秘めたStruts 2

 Strutsフレームワークの登場により、JavaによるWebアプリケーション開発は飛躍的に成長しました。いまでは、さまざまなフレームワークが存在しています。日本発のフレームワークSeaserやサン・マイクロシステムズのJSFなどが有名です。

 その中に、「Struts 2」というフレームワークが存在することをご存じの方は多いでしょう。ところが、日本語の情報源がとても少ないのが現実です。その結果、なかなか日本でブレイクするキッカケをつかめずにいます。

 いまでも、多くの現場で使われているStrutsは、2001年に登場しました。本来Strutsが目指したものは、メンテナンス性に優れた、チーム開発に適した土台を提供することにありました。その結果犠牲になったものがWebアプリケーションの「生産性」です。ちょこっと機能を付けたしたいだけなのに、XMLファイルを編集して、あれこれと多くのクラスファイルを作る必要がありました。

図1 便利なStrutsだが、課題もいっぱい
図1 便利なStrutsだが、課題もいっぱい

 Struts 2は、Strutsの課題を解決し、Strutsの「品質維持」機能を保ちつつ、まったく違う「開発効率アップ」の思想で作られました。

コラム 「サルが知りたいStruts 2の疑問」

Q1.新しくStruts 2の設定ファイルの書き方覚えないといけないの?

A1.Strutsと同様に、設定ファイルを書いてもいいけど、ほとんどのケースで書く必要がありません。ですので書き方を覚える必要もありません!

Q2.Strutsで覚えたことは、まったく役に立たないの?

A2.基本的な作り方はStrutsと同じです。ActionクラスにViewとModelの橋渡しコードを書いていく基本的な書き方はいままでどおりです。

Q3.SeasarやSpringでDIコンテナ使っているから、十分なんだけど?

A3.Struts 2は、DIコンテナとは別のアプローチで開発の効率化を進めます。設定ファイルを書かなくてすむだけではなく、Webアプリケーション開発に特化したさまざまな機能が追加されています。また、Struts 2は、SeasarやSpringと連携することもできます。

 Struts 2の場合、新しいページを作るのに必要なのは、JSPとシンプルなActionクラス2つのファイルだけです。これはコードビハインドという機能と、Java 1.5(Java 5)から搭載された機能である「@(アットマーク)」の「アノテーション」によって実現されたものです。

図2 JSPとシンプルなActionクラス2つのファイルだけ!
図2 JSPとシンプルなActionクラス2つのファイルだけ!

 昔のStrutsよりも、そしてほかのフレームワークよりも、「幸せになれるフレームワーク」。それがStruts 2なのです。

Struts 2をインストールしてみよう

 本稿では、前提として以下の環境が整っていることとします。@ITの記事などを参考にインストールしておいてください。

  • Eclipse 3.0以上
  • Tomcat 5.5以上

 Struts 2自体はアノテーションの使えない古いJREでも動作しますが、本記事はアノテーションを多用するため、最新のJRE 1.6を使用します。Eclipseは最新の3.4.1、Tomcatは6.0.18を使用します。

Struts 2のダウンロード

 Struts 2を下記サイトからダウンロードします。

 今回は、最新のバージョンであるStruts 2.1を使用します。解凍したファイルの中にある以下のファイルを、Tomcatの「lib」フォルダにコピーします。

  • commons-logging-1.0.4.jar
  • freemarker-2.3.12.jar
  • commons-fileupload-1.2.1.jar
  • ognl-2.6.11.jar
  • struts2-codebehind-plugin-2.1.2.jar
  • struts2-core-2.1.2.jar
  • xwork-2.1.1.jar

 ほかにも多くのJARファイルがありますが、Struts 2を動かすうえで最低限必要なJARファイルは上記のみです。ほかのファイルは必要に応じて追加します。

Eclipseの設定

 Eclipseを起動して、メニューから[ファイル]→[新規]→[プロジェクト]を選択し、[Web]フォルダの中の[動的Webプロジェクト]を選択して[次へ]進みます。

 [新規動的Webプロジェクト]ウィンドウで、プロジェクト名に「struts2」と記入し、ターゲット・ランタイムの[新規]を選択します。[新規サーバー・ランタイム環境]のウィンドウが開くので、[Apache Tomcat v6.0]を選択し、[新規ローカル・サーバーの作成]のチェックボックスにチェックを入れ、[次へ]進みます。

図3 [新規サーバー・ランタイム環境]
図3 [新規サーバー・ランタイム環境]

 [Tomcatインストールディレクトリー]の[参照]から「apache-tomcat-6.0.18」フォルダをえらび、[完了]をクリックして、[新規動的Webプロジェクト]ウィンドウに戻ります。

 [新規動的Webプロジェクト]ウィンドウに戻ったら、[完了]を押します。プロジェクトが作成できたら、「WebContent/WEB-INF/web.xml」に以下の記述を追加します。

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
  <init-param>
    <param-name>actionPackages</param-name>
    <param-value>test</param-value>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 Actionクラスは、「test」パッケージの下に配置し、「/*」にマッチするリクエストに対して、Struts 2のServletFilterを通すように設定しています。

 以上で、Struts 2を動作させる環境が整いました。次ページでは、簡単なサンプルで、Struts 2の開発効率の良さを感じてみましょう!

  1-2-3

 INDEX
Page1
  Strutsに“2”が存在することを知ってましたか?
コラム 「サルが知りたいStruts 2の疑問」
Struts 2をインストールしてみよう
  Page2
  @(あっと)いう間に「こんにちは! Struts 2」
「こんにちは! Struts 2」の動作原理
  Page3
  4種類のResultアノテーションを使い分ける
コラム 「式言語OGNLとは?」
潜在的な可能性を秘めたStruts 2


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間