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.5:共通処理クラス(BaseAction)の設計
📂 本プロジェクトでの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 の設定内容やルールについて、具体的なコード例を交えて詳しく解説します。