S2Maiは、初期状態ではテンプレートエンジンとしてFreeMarkerを利用していますが、これをVelocityに替える事が出来ます。
依存jarの削除・追加
Velocityの以下のjarをクラスパスに追加して下さい。
- velocity-x.x.jar
- velocity-tools-generic-x.x.jar
FreeMarkerのjarは不要になりますので、削除して構いません。
Maven2からご利用の方は、pom.xmlのdependency要素を以下のようにして下さい。
<dependency>
<groupId>org.seasar.mai</groupId>
<artifactId>s2mai</artifactId>
<version>x.x.x</version>
<exclusions>
<exclusion>
<artifactId>freemarker</artifactId>
<groupId>freemarker</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>x.x</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>velocity-tools</groupId>
<artifactId>velocity-tools-generic</artifactId>
<version>x.x</version>
<type>jar</type>
</dependency>
各versionは適宜指定して下さい。
diconファイルの編集
s2mai-x.x.x.jarの中にあるmailTemplate.diconを取り出し、ルートパッケージに置いて、下記の様に編集して下さい。
mailTemplate.dicon(編集前)
<components namespace="mailTemplate" >
<!-- FreeMarker -->
<include path="org/seasar/mai/template/freemarker.dicon"/>
<!-- Velocity -->
<!--
<include path="org/seasar/mai/template/velocity.dicon"/>
-->
</components>
mailTemplate.dicon(編集後)
<components namespace="mailTemplate" >
<!-- Velocity -->
<include path="org/seasar/mai/template/velocity.dicon"/>
</components>
freemarker.diconの代わりに、velocity.diconをincludeする形にします。
ファイル名の命名規則はFreeMarkerの場合と変わりませんが、拡張子は「vm」になります。例えば、TestMai#sendMail()が読み込むテンプレートは、Maiと同じパッケージ内の「TestMai_sendMail.vm」です。
TestMai_sendMail.vm
Subject: テストメールです。
$data.nameさんこんにちは。
テンプレート内で引数Dtoを表す要素名は「data」固定なのはFreeMarker利用時と一緒です。詳細はこちらを参照して下さい。
|