2007 年 3 月 8 日 21 時 26 分

Struts 設定ファイルの基本


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


Struts を動作させるためには、
設定ファイルを用意しなければならない。

設定ファイルは最近流行の XML 形式であり、
通常、/WEB-INF/struts-config.xml に配置する。
しかしながら、この設定ファイル、非常に複雑なのだ。
なので、少しずつ読み解いていくことにしよう。

Struts の設定ファイルの基本的な枠組みは以下のとおり。
Controller として、最も簡単な設定だけしてみよう。

========== struts-config.xml ==========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
        "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">

<struts-config>
    <action-mappings>
        <action path="/index" forward="/WEB-INF/pages/login.jsp" />
    </action-mappings>
</struts-config>
========== end of struts-config.xml ==========

Struts は DTD を使うため、DOCTYPE 宣言が必要となる。
今回は Struts-1.3.9 を使うので、バージョンも 1.3 だ。
バージョンによって定義できる要素が異なるので注意。

<action-mappings> 要素は、Controller の設定であり、
Struts の ActionServlet に届いた要求を、
どのような Model や View に渡すかを指定する。

<action-mappings> の中には、複数の <action> 要素が入り、
各 <action> 要素によって URL の動作を定義する。
<action> の path 属性は必須であり、
<action> が関連付けられる URL(のパス部分)を指定する。

上記の場合、/index というパスに要求があると、
/WEB-INF/pages/login.jsp に転送する動作の定義である。
http://localhost:8080/app/index.do 等にアクセスすれば、
この動作を呼び出すことができる。

ActionServlet は通常、*.do に割り当てるため、
最後が .do で終わった URL でないと、
ActionServlet が呼び出されない。
そのため、/index でなく、/index.do となるのだ。

このことを考慮し、ActionServlet は要求を受けると、
「そのパス部分から拡張子を除いたもの」を元に
対応する path を持つ <action> を探し出し、
見つかった場合はその内容に従って処理をする。
なので、<action> の path 属性には拡張子は不要である。

ううむ、いまいちピンときにくいため、
明日、適当なアプリケーションを作ってみよう。



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