0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📘 Vol.4:Struts2とMavenの基礎と設定ファイルの役割

Last updated at Posted at 2025-05-19

🎯 本記事の目的

本記事では、Struts2フレームワークとMavenを中心に、掲示板アプリ開発の基盤となる仕組みについて説明します。

Vol.4で紹介した詳細設計を元に、

  • なぜこの技術を使うのか?
  • 構成ファイルがどのように機能しているのか?

について理解を深めていきます。


🏗 Struts2とは?

Struts2は、JavaでWebアプリケーションを開発するためのMVCフレームワークです。

MVCモデルは、以下のように役割を分離することで保守性・拡張性を高めます:

  • Model(業務ロジック)
  • View(画面表示)
  • Controller(制御)

🔧 主な構成ファイル

web.xml

  • Webアプリのエントリーポイント
  • Struts2のFilterDispatcher(現StrutsPrepareAndExecuteFilter)を設定

struts.xml

  • Struts2の中核設定ファイル
  • 各アクション(Actionクラス)と画面(JSP)とのマッピングを定義

struts.properties(任意)

  • struts.xmlで指定できない細かい設定を記述
  • 多くのプロジェクトでは未使用

⚙️ Struts2における制御の流れ

  1. 画面(JSP)からのリクエスト
  2. Actionクラスに制御が移る
  3. 業務ロジックを処理
  4. 処理結果に応じてJSPにフォワード

このように、Struts2はMVCアーキテクチャをベースに設計されています。


📦 Mavenとは?

Mavenは、Javaプロジェクトにおけるビルドツール兼ライブラリ管理ツールです。

主な役割:

  • 依存ライブラリの自動管理
  • ビルド処理の自動化
  • 環境の統一

✅ Mavenを利用する理由

  • pom.xmlに依存関係を記述するだけで自動でダウンロード&設定
  • WARファイル作成やコンパイルも簡単
  • チーム開発において環境構築が容易になる

📂 pom.xmlの役割

  • Struts2などの必要なライブラリを依存関係として定義
  • Javaのコンパイルバージョン、WARファイルの出力などを設定
  • ビルド時のプラグインを定義

📝 pom.xmlの記述例(Struts2関連抜粋)

<dependencies>
  <!-- Struts2 本体 -->
  <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.26</version>
  </dependency>

  <!-- JSPやServlet API(providedスコープ) -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

<build>
  <plugins>
    <!-- Javaコンパイル設定 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>

    <!-- WARファイル作成 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.3.1</version>
    </plugin>
  </plugins>
</build>

🧰 Struts2 × Maven 連携のポイント

  • pom.xmlにStruts2関連の依存関係を記述するだけでOK

  • 手動でJARをダウンロード&配置する手間は不要

  • mvn packageで簡単にWARファイルを生成できる

  • WARファイルをTomcatのwebappsに配置すればすぐに起動可能

  • src/main/resources/struts.xml にStrutsのルーティング設定を記述


🗂 Mavenの標準ディレクトリ構成

project-root/
├── src/
│ ├── main/
│ │ ├── java/ # Javaコード(Actionクラスなど)
│ │ ├── resources/ # 設定ファイル(struts.xmlなど)
│ │ └── webapp/ # Webリソース(JSP, HTML, CSSなど)
│ │ └── WEB-INF/
│ │ └── web.xml # Webアプリの設定ファイル
├── target/ # Mavenのビルド成果物(WARなど)
└── pom.xml # プロジェクト構成ファイル


✅ まとめ

項目 説明
Struts2 JavaのMVC Webフレームワーク。業務ロジック、画面、制御を分離
Maven 依存管理とビルドを自動化し、開発効率と環境統一を支援
構成ファイル web.xml, struts.xml, pom.xmlが中心
推奨構成 Maven標準ディレクトリ構成を守るとビルドと管理がスムーズ

📎 補足資料リンク


▶️ 次回 Vol.5 環境構築編:掲示板アプリケーションの実行準備


🧭 Vol.1〜7 関連リンク

タイトル 主な内容
Vol.1 プログラミングとの再会 – 「画面ありき」で変わった学び方 プログラミング再入門と、画面駆動の学習法というユニークなアプローチの紹介。最初に「画面」から考えることでモチベーションを継続。
Vol.2 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。
Vol.3 詳細設計編:ER図で見るデータ構造と実装の土台 実装前提で設計された ER図(Entity Relationship 図) をもとに、データ構造と整合性を設計。
Vol.5 環境構築編:掲示板アプリケーションの実行準備 TomcatとEclipseでの動作環境構築。
Vol.6 BaseActionクラスの詳細解説【Struts2の要】 すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。
Vol.6.1 BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。
Vol.7 Struts2 における MVC モデルの全体像 Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。
Vol.7.1 Struts2 における Model(モデル)について JavaBeansベースのModelクラス(User, Thread, Post など)設計とその役割を明確化。
Vol.7.2 Struts2 における Controller(コントローラ)の責務 Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。
Vol.7.3 Struts2 における struts.xml の書き方と役割 URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。
Vol.7.4 struts.xmlの高度な設定と実践活用(Struts2) namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?