それを行う方法を考え出した。
StringTemplate のドキュメントは非常にわかりにくい場合があります。最新バージョン (バージョン 4) には、以前のバージョンとは異なるクラスがあります (ST
の代わりにStringTemplate
、 のSTGroup
代わりにStringTemplateGroup
など)。
また、「antlr」への外部依存関係もあります。 これらの手順(リンクには必要な jar へのリンクが含まれています) に従って、「antlr」および「SimpleTemplate」jar をサーバーの WEB-INF/lib ディレクトリに配置します。
バージョン 2 で導入されたテンプレート「グループ」は、私が知る限り、Web サーバー上のファイルからテンプレートをロードするために必要です。
したがって、それを機能させるには、次のような内容のテンプレート グループ ファイルを定義する必要がありました。emailTemplate.stg
html_format(keyToReplace1, keyToReplace2) ::= <<
<html>
<body>
<div>
This is $keyToReplace1$
<br/>
This is $keyToReplace2$
</div>
</body>
</html>
>>
次に、コードから相対 URL を介してこのファイルにアクセスできるようにする必要がありました。これは、ブラウザで次のような URL にアクセスすることで簡単にテストできます: localhost:8888/templates/emailTemplate.stg
次に、このテンプレートを使用するために、次のコードを使用しました。
STGroup g = new STGroupFile("templates/emailTemplate.stg", '$', '$');
ST emailTemplate = g.getInstanceOf("html_format");
emailTemplate.add("keyToReplace1", "value for the first key");
emailTemplate.add("keyToReplace2", "value for the second key");
String result = emailTemplate.render();