Home of: [工房 "藤車"] > [SourceForge.net における PageMixer]

Struts の設定

本節では、 Struts("struts-config.xml")の設定に関して説明します。

"web.xml" の記述

本チュートリアルの前節における設定の Servlet マッピング部を以下に再掲します。


<servlet-mapping>
  <servlet-name>
    mainMenu.page
  </servlet-name>
  <url-pattern>
    /mainMenu.page
  </url-pattern>
</servlet-mapping>

Servlet のマッピング

"mainMenu.page" Servlet は "/mainMenu.page" にマウントされています。 この設定により、 "mainMenu.page" Servlet と "mainMenu.jsp" の違いは、 接尾辞(".page" ないし ".jsp")のみとなります。

"struts-config.xml" の記述

ここで、 接尾辞(".jsp" ではなく ".page" ) 以外は同一の位置にマウントされた Servlet によって、 JSP ファイルが置き換えられているものと仮定します。 この時、 ("action" における)"input" あるいは ("forward" における)"path" 中のパス接尾辞を、 ".jsp" から ".page" へと変更します。

例えば、 Struts の struts-mailreader における "struts-config.xml" は以下のような設定を持ちます。


<!-- Edit mail subscription -->
<action path="/editSubscription"
        type=
"org.apache.struts.webapp.example.EditSubscriptionAction"
        name="subscriptionForm"
        scope="request"
        validate="false">
  <forward name="failure"
           path="/mainMenu.jsp"/>
  <forward name="success"
           path="/subscription.jsp"/>
</action>

Struts の struts-mailreader における "struts-config.xml"

上記の設定は以下のように変更されます。


<!-- Edit mail subscription -->
<action path="/editSubscription"
        type=
"org.apache.struts.webapp.example.EditSubscriptionAction"
        name="subscriptionForm"
        scope="request"
        validate="false">
  <forward name="failure"
           path="/mainMenu.page"/>
  <forward name="success"
           path="/subscription.page"/>
</action>

サンプル実装における "struts-config.xml"

Struts との連携

以上で必要なものが全て揃いました。

Struts における "Action" の結果を、 PageMixer フレームワークを用いて描画することが出来ます。

サンプルを用いた WEB アプリケーションイメージ構築の手順を以下に示します。 以下の手順を実施する前に、 "README.ja.txt" を読み、Apache ANT を使って all@demo/struts/war/ をビルドしてください。

  1. (PageMixerの)obj/java/webapps/demo-struts を他にコピーします (以下、この場所を $(DEMO_STRUTS) とします)
  2. struts.jar (およびその他の必要とされるライブラリ)を $(DEMO_STRUTS)/WEB-INF/lib 配下にコピーします
  3. (Struts の)struts-mailreader/WEB-INF/classes$(DEMO_STRUTS)/WEB-INF 配下にコピーします

例えば、 $(DEMO_STRUTS) は Jakarta Tomcat の CATALINA_BASE における webapps 配下などに配置することが出来ます。