2007 年 3 月 7 日 23 時 57 分

ActionServlet は Controller である


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


次に、Struts 1.x について考える。

Struts 1.x は幾つかの部品で成り立っているのだが、
その心臓部は、JSP と同じような Servlet である。

Struts の Servlet 実装である ActionServlet は
MVC における Controller として機能する。
そのため、web.xml に登録して URL を割り当て、
クライアントからの要求を直接処理させる。

    <servlet>
        <servlet-name>struts</servlet-name>
        <servlet-class>
            org.apache.struts.action.ActionServlet
        </servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>struts</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

Struts は通常 *.do パターンにマッピングされる。
上記の設定を行った場合、パスが .do で終端する URL は、
Struts の Servlet に制御が渡されることになる。

原則として ActionServlet が主導権を握っており、
ActionServlet が要求を受け取ると、
初期化パラメータ config で指定された設定ファイルを読み、
その内容に従って View や Model を決定し、呼び出す。

設定ファイルには、URL と Model や、
View と Model の関連付けが書いてあり、
画面の遷移は原則として Controller によって行われる。
これにより、View と Model の依存性を最小限にしている。

Struts における Model は、小さな Java クラスである。
これは開発者が必要な数だけ作ることができる。
設定ファイルに URL に対応するクラスを登録しておくと、
Struts がそのインスタンスを生成して呼び出す。

Struts における View は、単なる URL である。
Struts は転送機能を使って View を呼び出すため、
View には JSP だけでなくあらゆる Servlet を利用可能だ。

Struts には、JSP で利用できるタグ(部品)もあるため、
JSP を使うのが最も効率的ではあるが、
VelocityServlet などを組み合わせれば、
View に Velocity テンプレート等を使うこともできる。

さて、ActionServlet による流れの制御は、
全て開発者が決めることであり、
それらは全て設定ファイルに記述することになる。

Struts を理解するためには、
まず設定ファイルに慣れなければならないのだ。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.