@いう間にWebアプリを作れる「Struts 2」入門
【特集】Strutsは“2”を使えば、サルでも幸せに
ヤスダネットワーク
関川 晶子
2009/1/8
Strutsに“2”が存在することを知ってましたか?
Strutsフレームワークの登場により、JavaによるWebアプリケーション開発は飛躍的に成長しました。いまでは、さまざまなフレームワークが存在しています。日本発のフレームワークSeaserやサン・マイクロシステムズのJSFなどが有名です。
その中に、「Struts 2」というフレームワークが存在することをご存じの方は多いでしょう。ところが、日本語の情報源がとても少ないのが現実です。その結果、なかなか日本でブレイクするキッカケをつかめずにいます。
いまでも、多くの現場で使われているStrutsは、2001年に登場しました。本来Strutsが目指したものは、メンテナンス性に優れた、チーム開発に適した土台を提供することにありました。その結果犠牲になったものがWebアプリケーションの「生産性」です。ちょこっと機能を付けたしたいだけなのに、XMLファイルを編集して、あれこれと多くのクラスファイルを作る必要がありました。
図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つのファイルだけ! |
昔の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 [新規サーバー・ランタイム環境] |
[Tomcatインストールディレクトリー]の[参照]から「apache-tomcat-6.0.18」フォルダをえらび、[完了]をクリックして、[新規動的Webプロジェクト]ウィンドウに戻ります。
[新規動的Webプロジェクト]ウィンドウに戻ったら、[完了]を押します。プロジェクトが作成できたら、「WebContent/WEB-INF/web.xml」に以下の記述を追加します。
<filter> |
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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|