毎回既存のものに触れることなく、XMLファイルからFreemarkerにTemplateMethodsを追加したいと思います。
これは、次のような値ですでに可能です。
XMLの例:
<example>
<value1>abc</value>
<value2>def</value>
</example>
テンプレートの例:
This value1: ${doc.example.value1} and this value2: ${doc.example.value2}
xmlに必要な数の値を追加し、呼び出し元のプログラムを変更せずにテンプレートで使用できます。
TemplateMethodModel
Freemarkerコードを追加/削除するたびに変更せずに、の実装でこれを行うにはどうすればよいですか?
より具体的に-私がやりたいこと:
XMLモデル:
TemplateMethodのクラスと名前が含まれています
<templatemethodmodel>
<method name="intToHex">example.methods.IntToHexMethod</method>
</templatemethodmodel>
テンプレート:のクラスの
インスタンスを呼び出すIntToHexMethod
Only an example: ${intToHex(3)}
これで、テンプレートを処理するJavaコードに触れることなく、新しいメソッド(=名前とクラスを含むxmlエントリ)を追加できるようになります。