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

Servlet の設定

本節では、 (Struts の TagLib を用いた)JSP ファイルに対応する (PageMixer を用いた)Servlet の設定方法を説明します。

概要

クラス名

本チュートリアルでは、 クラスは全てクラス名のみで表記されています。 完全な名称は以下の通りです。

PageMixer フレームワークのクラス

NotationFull name
ContextFactory jp.ne.dti.lares.foozy.pagemixer.servlet.ContextFactory
DefaultPage jp.ne.dti.lares.foozy.pagemixer.page.DefaultPage
DefaultPageServlet jp.ne.dti.lares.foozy.pagemixer.servlet.DefaultPageServlet
DefaultPageServlet jp.ne.dti.lares.foozy.pagemixer.struts.DefaultPageServlet
FilterFactory jp.ne.dti.lares.foozy.pagemixer.servlet.FilterFactory
I18NDefaultPage jp.ne.dti.lares.foozy.pagemixer.page.I18NDefaultPage
I18NDefaultPageServlet jp.ne.dti.lares.foozy.pagemixer.servlet.I18NDefaultPageServlet
I18NDefaultPageServlet jp.ne.dti.lares.foozy.pagemixer.struts.I18NDefaultPageServlet
LocaleFactory jp.ne.dti.lares.foozy.pagemixer.servlet.LocaleFactory
LocalePage jp.ne.dti.lares.foozy.pagemixer.page.LocalePage
LocalePageServlet jp.ne.dti.lares.foozy.pagemixer.servlet.LocalePageServlet
LocalePageServlet jp.ne.dti.lares.foozy.pagemixer.struts.LocalePageServlet
MonoPage jp.ne.dti.lares.foozy.pagemixer.page.MonoPage
MonoPageServlet jp.ne.dti.lares.foozy.pagemixer.servlet.MonoPageServlet
MonoPageServlet jp.ne.dti.lares.foozy.pagemixer.struts.MonoPageServlet
PageServlet jp.ne.dti.lares.foozy.pagemixer.servlet.PageServlet
StrutsContextFactory jp.ne.dti.lares.foozy.pagemixer.struts.StrutsContextFactory
StrutsFilterFactory jp.ne.dti.lares.foozy.pagemixer.struts.StrutsFilterFactory
StrutsLocaleFactory jp.ne.dti.lares.foozy.pagemixer.struts.StrutsLocaleFactory

PageServlet 再び

PageServlet の使用/設定およびその派生クラス群に関しては、 "Servlet 環境における利用" において説明しました。

PageMixer は、 MonoPageLocalePageDefaultPage および I18NDefaultPage を利用する PageServlet 派生クラスを、 Struts 環境用にも提供しています。 Servlet 環境用の派生クラス群と同様に、 それらもまた MonoPageServletLocalePageServletDefaultPageServlet および I18NDefaultPageServlet と名付けられていますが、 これらのクラスは jp.ne.dti.lares.foozy.pagemixer.struts パッケージに配置されています。

web.xml の記述

mainMenu.jsp の代替として Servlet を使用する場合の設定例を以下に示します。 ロケールに応じた描画を行わない MonoPageServlet を利用することも可能ではありますが、 この例ではロケールに応じた描画を行う LocalePageServlet を使用しています。


<servlet>
  <servlet-name>
    mainMenu.page
  </servlet-name>
  <servlet-class>
    jp.ne.dti.lares.foozy.pagemixer.struts.LocalePageServlet
  </servlet-class>
  <init-param>
    <param-name>
      forward.condition.0
    </param-name>
    <param-value>
      pagemixer.servlet.NotLoginCondition
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      filter.factory.0
    </param-name>
    <param-value>
      pagemixer.filter.UserFilter$Factory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      page.location
    </param-name>
    <param-value>
      page.mainMenu
    </param-value>
  </init-param>
</servlet>

    :

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

Servlet の設定

"NotLoginCondition" は、 認証無しで /mainMenu.page がアクセスされた場合に、 制御を "login" ページへと転送します。 しかし、これはどこへ制御を転送すればよいのでしょうか? "login" 機能はどこにあるのでしょうか?

"login" ページの位置を NotLoginCondition のコードに直接埋め込んでも構わないのですが、 PageMixer/Struts 連携のデモンストレーションにおける NotLoginCondition に "login" の位置を教えるために、 context-param の "path.logon" が使用されています。


<context-param>
  <param-name>
    path.logon
  </param-name>
  <param-value>
    /logon.page
  </param-value>
</context-param>

"login" 機能の位置

これにより、 コンパイルせずにウェブアプリケーションの設定が変更できます。

これ以外の init-param に関する詳細は、 "Servlet 環境における利用" を参照してください。


次節「Struts の設定」へ