-アプリケーション共通の設定

テンプレートの切り替え機能や、タグライブラリのロードなどをテンプレートもしくはそれに対応するMaya設定XML毎に記述するのは煩雑なことがあります。また、テンプレートの記述エンコーディングのようにMaya設定XMLにしか記述できない情報もありますが、そのためだけにHTMLテンプレート以外に設定XMLを置くのは不便です。そういった場合には、あらかじめアプリケーション共通の設定をデフォルト設定ファイルとしてまとめて定義しておくことが可能です。

[List.10 /WEB-INF/web.xml]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
	PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>MayaServlet</servlet-name>
    <servlet-class>org.seasar.maya.MayaServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/maya-page/default.maya</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>MayaServlet</servlet-name>
    <url-pattern>/maya-page/*</url-pattern>
  </servlet-mapping>
</web-app>

デフォルト設定ファイルの指定は、サーブレットのinitParam設定によって行います。configキーに対して、設定ファイルのパスを指定します。省略されるとデフォルト設定ファイルは無いことなります。デフォルト設定ファイルは、Maya設定XMLファイルとまったく同様です。

[list.11 /maya-page/default.maya]
<?xml version="1.0" encoding=" ISO-8859-1"?>
<!DOCTYPE maya 
    PUBLIC "-//The Seasar Project//DTD Maya page specification 0.1//EN" 
    "http://www.seasar.org/dtd/maya_0_1.dtd">
<maya>
  <taglib prefix="m" url="http://www.seasar.org/maya"/>
  <taglib prefix="c" url="http://java.sun.com/jstl/core"/>
  <taglib prefix="f" url="http://java.sun.com/jsf/core"/>
  <taglib prefix="h" url="http://java.sun.com/jsf/html"/>
  <model name="localeModel" scope="application" 
    class="sample.org.seasar.maya.hellomaya.localeModel"/>
  <page suffix="${ localeModel.processLocale(mayaContext) }">
    <template encoding="ISO-8859-1"/>
    <template suffix="ja" encoding="Shift_JIS"/>
  </page>
</maya>

[list11]のように、taglibのロードをまとめてデフォルト設定ファイルにて指定しておくことも可能です。設定は各ページに対応するMaya設定XMLの定義がデフォルト設定ファイルのものより優先されます。