エンジンの設定
ServiceProviderの設定
Mayaa エンジンの設定には、org.seasar.mayaa.provider.ServiceProvider というファイル名のXMLファイルを使います。
v1.3.0以降はこのファイルは下記の順序で配置先を確認して最初に見つかった場所のものが採用されます。
v1.2 までは存在しているファイルを逆の順序ですべて読み込み、最後に読み込んだものだけが残ります。
WEB-INFの直下META-INFの下- ビルトイン(mayaaのJARファイル内に含まれるもの)
ファイルを置く場所
WEB-INF/
|-- org.seasar.mayaa.provider.ServiceProvider ①
+-- classes/
| +-- META-INF/
| | |
| | +-- org.seasar.mayaa.provider.ServiceProvider ②
| |
| +-- (クラスファイルなど)
|
+-- lib/
| +-- xxxxxxx.jar
| | +-- META-INF/
| | +-- org.seasar.mayaa.provider.ServiceProvider ②
| +-- mayaa-[version].jar ③
|
(省略)
■何もしない設定ファイル
これは何もしない設定ファイルです。この中に各種の設定を書くことで、Mayaa の動作を設定できます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE provider
PUBLIC "-//The Seasar Foundation//DTD Mayaa Provider 1.0//EN"
"http://mayaa.seasar.org/dtd/mayaa-provider_1_0.dtd">
<provider>
</provider>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE provider
PUBLIC "-//The Seasar Foundation//DTD Mayaa Provider 1.0//EN"
"http://mayaa.seasar.org/dtd/mayaa-provider_1_0.dtd">
<provider>
<engine>
<!-- Mayaa Engineに関する設定 -->
</engine>
<scriptEnvironment>
<!-- Mayaa内のスクリプトエンジンから参照できるプロパティのスコープ定義など -->
</scriptEnvironment>
<specificationBuilder>
<!-- Mayaa内のスクリプトエンジンから参照できるプロパティのスコープ定義など -->
</specificationBuilder>
<libraryManager>
<templateBuilder class="org.seasar.mayaa.impl.builder.TemplateBuilderImpl">
<pathAdjuster class="org.seasar.mayaa.impl.builder.PathAdjusterImpl">
<templateAttributeReader>
<parentSpecificationResolver class="org.seasar.mayaa.impl.engine.specification.ParentSpecificationResolverImpl">
</provider>
~はorg.seasar.mayaaを表します。
| エレメント名 | 要求されるインタフェース | |
|---|---|---|
| engine | org.seasar.mayaa.engine.Engine org.seasar.mayaa.impl.engine.EngineImpl |
|
| parentSpecificationResolver | org.seasar.mayaa.engine.specification.ParentSpecificationResolver org.seasar.mayaa.impl.engine.specification.ParentSpecificationResolverImpl |
|
| scriptEnvironment | org.seasar.mayaa.cycle.script.rhino.ScriptEnvironment org.seasar.mayaa.impl.cycle.script.rhino.ScriptEnvironmentImpl |
|
| templateAttributeReader | org.seasar.mayaa.builder.library.TemplateAttributeReader org.seasar.mayaa.impl.builder.library.TemplateAttributeReaderImpl |
|
| specificationBuilder | org.seasar.mayaa.builder.SpecificationBuilder org.seasar.mayaa.impl.builder.SpecificationBuilderImpl |
|
| templateBuilder | org.seasar.mayaa.builder.TemplateBuilder org.seasar.mayaa.impl.builder.TemplateBuilderImpl |
|
| pathAdjuster | org.seasar.mayaa.builder.PathAdjuster org.seasar.mayaa.impl.builder.PathAdjusterImpl |
|
| libraryManager | org.seasar.mayaa.builder.library.LibraryManager org.seasar.mayaa.impl.builder.library.LibraryManagerImpl |
|
| templateAttributeReader | org.seasar.mayaa.builder.library.TemplateAttributeReader org.seasar.mayaa.impl.builder.library.TemplateAttributeReaderImpl |
■Engine のパラメータ
Mayaa 標準の Engine に対するパラメータをいくつか説明します。デフォルト設定は下記の通りです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE provider
PUBLIC "-//The Seasar Foundation//DTD Mayaa Provider 1.0//EN"
"http://mayaa.seasar.org/dtd/mayaa-provider_1_0.dtd">
<provider>
<engine>
<parameter name="defaultSpecification" value="/default.mayaa"/>
<parameter name="checkTimestamp" value="true"/>
<parameter name="suffixSeparator" value="$"/>
<parameter name="welcomeFileName" value="index.html"/>
<parameter name="requestCharacterEncoding" value="UTF-8"/>
<parameter name="surviveLimit" value="5"/>
<parameter name="forwardLimit" value="10"/>
<parameter name="convertCharset" value="false"/>
</engine>
</provider>
defaultSpecification- すべてのページ共通に利用する Mayaa ファイルのパスを指定します。デフォルトは "
/default.mayaa" です。 checkTimestamp- HTML ファイル、Mayaa ファイルの更新を検知して再ビルドする機能を有効にするかどうかを設定します。"
true" なら有効、"false" なら無効です。デフォルトは "true" です。 suffixSeparator- テンプレート切り替え機能でページ名と suffix とを区別するための文字列を指定します。デフォルトは "
$" です。 requestedSuffixEnabled- テンプレート切り替え機能で suffix を明示したアクセスを許すかどうかを設定します。アクセス時に明示した suffix は最優先になります。デフォルトは "
false" です。 welcomeFileName- URL の最後が "
/" でアクセスされた場合にリダイレクトする先のファイル名を指定します。デフォルトは "index.html" です。 requestCharacterEncoding- Mayaa でリクエストパラメータを参照する際の文字コードを指定します。デフォルトは "
UTF-8" です。MayaaServletの前にHttpServletRequest#setCharacterEncoding(String encoding)でセットされている場合はこの設定を使用しません。 surviveLimit- ページのビルド結果をガーベジコレクションの対象にするまでの回数を指定します。デフォルトは "
5" です。ここで指定した回数だけ解放要求が来たときに初めて、ページのビルド結果オブジェクトがガーベジコレクションの対象になります。また値として "0" を設定した場合、ビルド結果はガーベジコレクションの対象になりません。 forwardLimit- 一回のレンダリング中に Mayaa の同一パスへ forward できる上限回数を指定します。デフォルトは "
10" です。このパラメータは記述ミスで無限ループしてしまうのを避けるためにあります。 convertCharset- テンプレートの meta タグで charset を "
Windows-31J" としたとき、出力する HTML および HTTP レスポンスヘッダの Content-Type の charset として "Shift_JIS" を出力するかどうか設定します。"true" なら有効、"false" なら無効です。デフォルトは "false" です。
TemplateBuilder のパラメータ
Mayaa 標準の TemplateBuilder に対するパラメータをいくつか説明します。デフォルト設定は下記の通りです。
この templateBuilder は id属性を無視するでパラメータ以外にも設定を紹介しています。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE provider
PUBLIC "-//The Seasar Foundation//DTD Mayaa Provider 1.0//EN"
"http://mayaa.seasar.org/dtd/mayaa-provider_1_0.dtd">
<provider>
<templateBuilder>
<parameter name="outputTemplateWhitespace" value="true"/>
<parameter name="outputMayaaWhitespace" value="false"/>
<parameter name="optimize" value="true"/>
<parameter name="defaultCharset" value="UTF-8"/>
<!-- 1.1.22 で追加されたパラメータ -->
<parameter name="replaceSSIInclude" value="true"/>
<!-- 1.1.25 で追加されたパラメータ -->
</templateBuilder>
</provider>
outputTemplateWhitespace- HTML ファイル上の空白文字(スペース、タブ文字)を出力するかどうか設定します。"
true" なら出力し、"false" なら出力しません。デフォルトは "true" です。 outputMayaaWhitespace- Mayaa ファイル上の空白文字(スペース、タブ文字)を出力するかどうか設定します。"
true" なら出力し、"false" なら出力しません。デフォルトは "false" です。 optimize- テンプレートビルド後の最適化をするかどうか設定します。最適化をすると描画パフォーマンスが向上します。"
true" なら有効、"false" なら無効です。デフォルトは "true" です。 defaultCharset- HTML ファイルを読み込むときのデフォルト文字コードを指定します。デフォルトは "
UTF-8" です。ここで指定した文字コードで HTML ファイルの先頭部分を読み込み、meta タグによる charset 指定を見つけたときは、meta タグで指定された文字コードで読み込み直します。 replaceSSIInclude- SSI の include 記述を insert プロセッサに置き換える機能を有効にするかを指定します。デフォルトは "
false" です。