Struts入門向けチートシート

更新日: 2025年3月23日

Strutsとは?

Struts(ストラッツ)はJavaベースのWebアプリケーションフレームワークです。Apache Software Foundationが開発しており、MVC(Model-View-Controller)アーキテクチャに基づいています。

📝 Strutsのバージョンに注意: 現在、Struts 1とStruts 2があります。このチートシートではStruts 2を中心に解説します。

MVCアーキテクチャ

Model
View
Controller
  • Model(モデル): ビジネスロジックとデータを表現
  • View(ビュー): ユーザーインターフェースを表現(JSP, Velocity, FreeMarkerなど)
  • Controller(コントローラ): リクエストを受け取り、処理を振り分け

主要コンポーネント

Action クラス

コントローラーの中心的な役割を担うクラス。リクエストを受け取って処理し、適切な結果を返します。

public class HelloWorldAction extends ActionSupport {
    private String message;
    
    public String execute() {
        message = "Hello, Struts 2!";
        return SUCCESS;
    }
    
    // getters and setters
}

設定ファイル

struts.xml

Struts 2の主要設定ファイル。アクションとビューのマッピングを定義します。

<?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="default" extends="struts-default">
        <action name="hello" 
                class="com.example.HelloWorldAction">
            <result name="success">hello.jsp</result>
        </action>
    </package>
</struts>
web.xml

Webアプリケーションの設定ファイル。Strutsフィルターを設定します。

<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>

リクエスト処理の流れ

1
ブラウザからリクエストが送信される
2
StrutsPrepareAndExecuteFilterがリクエストを処理
3
ActionMapperがURLからアクションを特定
4
対応するActionクラスのexecuteメソッドが実行される
5
結果に基づいて適切なビュー(JSPなど)が表示される

よく使うStruts 2タグ

タグ 説明
s:property ActionクラスのプロパティやValueStackの値を表示
s:form HTMLフォームを生成
s:textfield テキスト入力フィールドを生成
s:submit 送信ボタンを生成
s:iterator コレクションをループして処理
s:if 条件分岐
タグの使用例
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>Struts 2 Example</title></head>
<body>
    <h1><s:property value="message" /></h1>
    
    <s:form action="login">
        <s:textfield name="username" label="ユーザー名" />
        <s:password name="password" label="パスワード" />
        <s:submit value="ログイン" />
    </s:form>
</body>
</html>

Tips&ベストプラクティス

  • 命名規則を守る: アクション名はXxxActionとする
  • 入力検証: ValidationAwareを実装またはActionSupportを継承して入力検証を行う
  • 国際化対応: リソースバンドルを使用して複数言語対応
  • 例外処理: global-exceptionsを定義して一元管理
  • インターセプター活用: 共通処理はインターセプターに切り出す

🔍 デバッグTips: struts.devMode=trueを設定ファイルに追加すると、詳細なエラー情報が表示されます。本番環境では必ずオフにしましょう。

注意点

Struts 2はパワフルなフレームワークですが、いくつか注意点があります:

  • セキュリティ更新を確認: 常に最新バージョンを使用
  • 設定が複雑: XMLベースの設定は記述量が多い
  • 学習曲線: 初心者には少し学習コストが高い
  • Spring Bootとの比較: 最近のプロジェクトではより軽量なフレームワークも検討