VelocityとFreeMakerのテンプレートの読み込み方

相対パスで指定するからクラスパスから良きにはからって読んでくれ!が私の要求(笑)

Velocityはいつぞや調べたので覚えている。velocity.propertiesにこう書けばOK。

resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader

それでFreeMakerはfreemaker.propertiesにどう定義するんだ?というのが見つからない。マニュアルのTemplate loadingを見ても書いてない。そもそもfreemaker.propertiesに関する情報が見当たらない・・・。ちゃんと調べるなり、ソースを見るなりは今日はやめてコードで指定しました。

Configuration cfg = new Configuration();
cfg.setClassForTemplateLoading(getClass(), "/");

これでpackageName/template/hoge.vmとpackageName/template/hoge.ftlが使えるようになった。

いま作っているのはVelocityとFreeMakerとExcelがテンプレートエンジンとして使える仕様ですが、Excelを汎用的なテンプレートに使うのは考えただけでもめんどくさそう。きっとどこかに既にあると信じて今日は終わり。今日は結構遊んだなー。