これを行う方法がわかりました。
StringTemplateのドキュメントは非常に混乱する可能性があります。最新バージョン(バージョン4)は、以前のバージョンとは異なるクラスがあります(ST
代わりのStringTemplate
、STGroup
代わりのStringTemplateGroup
、など)
また、「ANTLR」に関する外部依存関係を持っています。 Per these instructions(リンクにはjarファイルへのリンクが含まれています)、 'antlr'と 'SimpleTemplate' jarファイルをサーバーのWEB-INF/libディレクトリに置きます。
バージョン2で導入されたテンプレート「グループ」は、Webサーバー上のファイルからテンプレートを読み込むために必要です。
だから、それは働いてもらうために、私は、次の内容で、テンプレートグループファイルを定義しなければならなかった私は、このファイルは、相対URLを経由して自分のコードからアクセスしたことを確認しなければならなかった
html_format(keyToReplace1, keyToReplace2) ::= <<
<html>
<body>
<div>
This is $keyToReplace1$
<br/>
This is $keyToReplace2$
</div>
</body>
</html>
>>
emailTemplate.stg
を命名します。 localhostを:これは、このような時など、ブラウザでURLに行くことによって簡単にテスト可能である8888 /テンプレート/ 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();
Freemarkerのをいくつかの奇妙な理由でAWTに依存しますが、GAEでは動作しません。とにかくStringTemplateほど良い選択ではありません。 –
FreeMarkerには正式なGAE版がJava版とともにリリースされています。 (そのAWTの依存関係は、一般的なツリーAPIにあり、何もGUI関連ではありません...) – ddekany