Documentation
5-7. テンプレートの場所
テンプレートを探すパスを設定
5-1「エンジン設定方法」と同様に、PageSourceFactory の設定をすることでページを置く場所を追加できます。PageSourceFactory の設定には、次に示す XML ファイルを使います。このファイルは META-INF
の下に org.seasar.mayaa.source.PageSourceFactory
という名前で作成します。
WEB-INF/ +-- classes/ | | | +-- META-INF/ | | | | | +-- org.seasar.mayaa.source.PageSourceFactory | | | +-- (クラスファイルなど) | +-- lib/ | (省略)
■設定ファイル
追加設定する場合、factory
の子として parameter
要素を必要なだけ記述します。
org.seasar.mayaa.source.PageSourceFactory
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE factory
PUBLIC "-//The Seasar Foundation//DTD Mayaa Factory 1.0//EN"
"http://mayaa.seasar.org/dtd/mayaa-factory_1_0.dtd">
<factory>
<parameter name="folder" value="/WEB-INF/page2"/>
<parameter name="absolutePath" value="C:/page1"/>
<parameter name="absolutePath" value="C:/page2"/>
</factory>
追加設定したパスは、追加設定した順に、下記の優先順で組み込まれます。
- コンテキストルートの下
- /WEB-INF/page の下
- 追加したパスの下
- クラスパスルート/META-INFの下
パラメータの指定方法は 2 種類あります。
folder
- コンテキストルート下のフォルダを指定します。"/" で始まり "/" なしで終わるよう指定してください。
absolutePath
- フォルダの絶対パスを指定します。
■活用例
パラメータの値には ${ ... }
と指定することで環境変数を利用できます。たとえば absolutePath
を ${ mayaa_path }
と設定しておき、開発者 PC では環境変数を -Dmayaa_path=C:/page
、運用環境では -Dmayaa_path=/var/www/html
と定義しておくと、Java のコードと全く別の場所でテンプレートファイルを管理することができます。
テンプレートと見なすファイル / 見なさないファイルを設定
5-1「エンジン設定方法」と同様に、engine にパラメータを設定をすることでテンプレートと見なすファイル、見なさないファイルを定義できます。(※PageSourceFactory への指定ではないことにご注意ください)
たとえば、コンテキストルート直下にある HTML ファイルのうち、一部のみ Mayaa に処理させたくない場合などに利用します。
■設定例
org.seasar.mayaa.provider.ServiceProvider
<?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="notTemplatePathPattern
" value=".*
"/> <parameter name="templatePathPattern
" value=".*\.html
"/> <parameter name="notTemplatePathPattern
" value="/doc/.*\.html
"/> </engine> </provider>
パラメータの指定方法は 2 種類あります。これらは複数指定することができ、下に指定したものから順番に判定され、どれにもマッチしないパスの場合は何も設定しない場合と同様に mime-type で HTML と定義されているものがテンプレートとして判定されます。
templatePathPattern
- テンプレートと見なすパターンを正規表現で指定します。
notTemplatePathPattern
- テンプレートではないと見なすパターンを正規表現で指定します。
たとえば設定例のとおりに設定した場合、次の優先順で条件を満たすパスがテンプレートとして判定されます。
/doc/.*\.html
にマッチしないこと.*\.html
にマッチすること
この結果、/doc/index.html
はテンプレートではない、/index.html
はテンプレートである、/help.htm
はテンプレートではない、と判定されます。