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.7.2:Struts2 における Controller(コントローラ)の責務

Last updated at Posted at 2025-05-20

Struts2では、MVCモデルに基づいてアプリケーションを構築します。
この章では、その中でも「Controller」に該当する Actionクラス の役割について解説します。


✅ Controller(コントローラ)の役割とは?

MVCモデルにおけるコントローラは、ユーザーの入力(リクエスト)を受け取り、それに応じた処理(ビジネスロジック)を実行し、適切な画面(View)に遷移する責任を持っています。

Struts2では、この「コントローラ」に該当するのが Actionクラス です。


🧱 Struts2におけるActionクラスの構成

Struts2のActionクラスは、以下のような構成で実装します。

public class LoginAction extends BaseAction {

    private String userId;
    private String password;

    @Override
    public String mainProc() {
        // 認証ロジック
        if (loginSuccess) {
            return SUCCESS;
        } else {
            return ERROR;
        }
    }

    // getter/setter(JavaBeansとして扱われる)
}

💡 ポイント

  • BaseAction はプロジェクト共通の処理(ログインチェック、セッション管理など)を担う基底クラスです。

  • 各Actionクラスでは、共通化された mainProc() メソッドをオーバーライドして、個別の処理を実装します。

  • mainProc() は BaseAction クラスで共通定義されたメソッドであり、各 Action クラスはこのメソッドをオーバーライドして、個別の処理を実装します。この仕組みにより、例外処理やログ出力などの共通処理を一元管理できます。

  • フォームから送信された値は、JavaBeans形式でgetter/setter経由で受け渡されます。

📎 BaseActionの詳細はこちら👇
📘 Vol.6:BaseActionクラスの詳細解説【Struts2の要】


📂 本プロジェクトでのActionクラスの場所

本プロジェクトでは、Actionクラス(コントローラ)は以下のパス配下に配置されています。

📎 GitHub リンクはこちら👇
Action クラス一覧(GitHub)

Bulletinboard/
└── src/
    └── main/
        └── java/
            └── com/
                └── company/
                    └── bulletinboard/
                        └── action/
                            ├── LoginAction.java
                            ├── CreateUserAction.java
                            └── ...

🧭 struts.xmlとの連携

ActionクラスとURLの対応付け、画面遷移の制御などは、struts.xml によって設定します。

<!-- ログイン用のアクション -->
<action name="login"
    class="com.company.bulletinboard.action.login.LoginAction">
    <result name="login">/login.jsp</result>
    <result name="admin">/view/ManagementMenu.jsp</result>
    <result name="user">/view/userPortal.jsp</result>
    <result name="input">/login.jsp</result> <!-- バリデーションエラー時にログイン画面に戻る -->
</action>

このように、URL「login.action」にアクセスがあった場合に LoginAction クラスの mainProc() メソッドが実行され、
処理結果に応じて以下の画面に遷移します。

  • login → /login.jsp (未ログインなどの状態)

  • admin → /view/ManagementMenu.jsp (管理者ログイン成功)

  • user → /view/userPortal.jsp (一般ユーザーログイン成功)

  • input → /login.jsp (入力バリデーションエラー)

📌 struts.xml の詳細については、次回のVol.7.3で詳しく解説予定です。

✍️ まとめ

  • Struts2におけるControllerは Actionクラス であり、ユーザーのリクエストに応じた処理を行う。

  • 共通の基底クラス BaseAction を継承し、mainProc() メソッドをオーバーライドして処理を記述するのが本プロジェクトの実装方針。

  • struts.xml によりActionとURL・遷移先のビューを定義できる。


📘 次回予告:
📘 Vol.7.3:Struts2 における struts.xml の書き方と役割

Struts2の核ともいえる struts.xml の設定内容やルールについて、具体的なコード例を交えて詳しく解説します。


🧭 Vol.1〜7 関連リンク

タイトル 主な内容
Vol.1 プログラミングとの再会 – 「画面ありき」で変わった学び方 プログラミング再入門と、画面駆動の学習法というユニークなアプローチの紹介。最初に「画面」から考えることでモチベーションを継続。
Vol.2 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。
Vol.3 詳細設計編:ER図で見るデータ構造と実装の土台 実装前提で設計された ER図(Entity Relationship 図) をもとに、データ構造と整合性を設計。
Vol.4 Struts2とMavenの基礎と設定ファイルの役割 Struts2の構成とMavenでの管理、web.xmlpom.xml の役割を丁寧に解説。
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.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?