Java Web アプリケーション開発において、Apache Struts 2 は依然として多くのプロジェクトで使用されている MVC フレームワークの一つです。本チュートリアルでは、Eclipse IDE を使用して Struts 2 環境を構築し、基本的な動作確認を行うまでのプロセスを解説します。
1. ソースコードとライブラリの準備
まず、公式リポジトリから最新安定版のアーカイブを取得します。ここでは最小構成のミニマルパッケージを選択することを推奨します。
- Apache Struts 公式サイトより該当バージョンの zip または tar.gz ファイルをダウンロードします。
- 解凍後、生成されたディレクトリ内の
libフォルダにある全ライブラリJARファイルを、作成済みの Struts 2 プロジェクトのクラスパスへコピーします。
これにより、アプリケーション実行に必要なコンポーネントが利用可能になります。
2. 設定ファイルの記述
2.1 struts.xml の定義
プロジェクトのルートディレクトリ、または src 配下に struts.xml を新規作成します。このファイルは Struts 2 のアクションマッピングと結果ルーティングを管理します。
以下の要素に注意して記述を行います:
- DIGITAL 記法 (DTD) を宣言し、XML の構造整合性を保証します。
- ルートノードには必ず
<struts>タグを使用します。 - 親のパッケージ名や拡張先(通常は
struts-default)を指定します。
以下はサンプル実装です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="base_package" extends="struts-default">
<!-- デフォルトアクション参照 -->
<default-action-ref name="login_view" />
<!-- アクション定義 -->
<action name="login_view" class="com.example.LoginAction">
<result name="success">/views/success.jsp</result>
<result name="error"/>/views/error.jsp</result>
</action>
</package>
</struts>
2.2 web.xml のフィルタ設定
Servlet コンテナ(例:Tomcat)にて Struts の処理を制御するために、WEB-INF/web.xml でフィルタを定義する必要があります。
一般的には、準備フェーズと実行フェーズを統合した StrutsPrepareAndExecuteFilter クラスを用いることが標準的です。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. ビュー層の実装
上記設定で定義したアクションの結果として表示される JSP ファイルを作成します。views ディレクトリ内に success.jsp を配置します。
JSP が WEB-INF ディレクトリ下のみに配置される場合、URL マッピングの修正が必要です。外部からの直接アクセスを防ぐためにも、WEB-INF 以下への配置はセキュリティ上好まれます。
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Login Success</title>
</head>
<body>
<h2>System Welcome Message</h2>
<p>Struts 2 Framework initialized successfully.</p>
</body>
</html>
4. アプリケーションの展開と検証
Eclipse 内で Tomcat サーバーにプロジェクトを接続します。Server パーツを設定し、アプリを再起動します。
ブラウザにて以下のようなアドレスへアクセスし、設定が正常に反映されているか確認します。
- Base Path:
http://localhost:8080/YourProjectName/login_view
画面に「System Welcome Message」などの文字列が表示されれば、Struts 2 の基本的なパイプラインは正しく機能しています。