Struts
Struts 1を中心に、リクエストがActionを経由してJSPへ到達する仕組みを整理する入口。
概要
StrutsはJavaのWebアプリケーションフレームワークです。このページでは、既存の業務システムで見かけるStruts 1を中心に扱います。
Struts 1を読むときは、クラスや設定項目を個別に暗記するより、1件のHTTPリクエストがどの設定とJavaクラスを通り、どのJSPへ到達するかを追えることが重要です。
Struts 1とStruts 2
Struts 1とStruts 2は、名前は似ていますが内部構造が大きく異なります。
| 観点 | Struts 1 | Struts 2 |
|---|---|---|
| リクエストの入口 | ActionServlet | Filter |
| 入力値の受け皿 | ActionForm | 主にActionのプロパティ |
| Actionの戻り値 | ActionForward | 文字列のResult名 |
| 主な設定 | struts-config.xml | struts.xml、アノテーションなど |
| JSPタグの例 | html:*、bean:*、logic:* | s:* |
依存ライブラリ、import文、設定ファイル、JSPのtaglib宣言から、どちらを使っているかを最初に確認します。
基本構造
- ブラウザがURLへリクエストを送る
web.xmlに従ってActionServletが受け取るstruts-config.xmlの<action>からActionMappingを特定するActionFormへ入力値を設定・検証する- 対応する
Actionのexecute()を呼び出す - Actionが業務処理を呼び出し、表示値を設定する
ActionForwardが遷移先を決める- JSPがHTMLを生成する
詳細はStruts 1のリクエスト処理で扱います。
MVCとの対応
| 役割 | Struts 1で関係する要素 |
|---|---|
| Controller | ActionServlet、ActionMapping、Action |
| Model | Service、業務オブジェクト、DAOなど |
| View | JSP、Strutsタグライブラリ |
| 入出力の橋渡し | ActionForm、request・session属性 |
ActionはController側の要素です。業務ロジックまで集めると、画面遷移、入力制御、業務判断が混ざります。既存コードでは理想的な分離を前提にせず、実際の配置を確認します。
コードを読む入口
- JSPの
<html:form action="...">やリンク先を確認する struts-config.xmlで対応する<action path="...">を探すtypeからActionクラスを開くnameからForm Beanを特定するexecute()と、そこから呼ばれる業務処理を読むfindForward()と<forward>から遷移先JSPを確認する
Java側から画面へ追う場合は、この順序を逆に辿ります。
深掘りページ
- Struts 1のリクエスト処理: リクエストからJSPまでの一本の流れ
- struts-config.xml: URL、Action、Form、遷移先の対応
- ActionForm: 入力値、スコープ、
reset()、validate() - ActionとActionForward: 処理の実行と画面遷移
- Struts 1の画面改修を調査する: 既存画面を変更するときの追跡手順
- logic:equalタグ: JSP上の表示条件
参考文献
更新履歴
- 初版作成
- Struts 1の処理構造を辿る親ページとして再構成