実は3つ目の方法もあります。でもまず...
ディレクティブは、テンプレートのセクションに対して、またはテンプレートのセクションを使用して何かを行うためのもの、またはそれらの周りのテンプレートを認識する必要があるものです。たとえば、何らかの方法で囲まれたセクションの出力を変換するディレクティブを作成できます。そして、この機能的なテンプレート中心の動作を、グローバルで常時オンの方法で提供します。
マクロは関数として設計されていません。コンテンツやマークアップを繰り返すのに最適です。これらは、出力しているマークアップ言語 (またはその他のもの) を Java コードに入れたり、VTL のセクションを何度も繰り返したりしないようにするために作られています。
3 つ目の方法は「ツール」と呼ばれます。VelocityTools プロジェクトには、非常に簡単なツール管理のためのサポート コードは言うまでもなく、使用または例として使用できるこれらの多くがあります。とにかく、ツールは主にデータにアクセスしたり操作したりするためのものです。数値の書式設定を行うディレクティブまたはマクロを作成しないでください。ツールを使用します。ツールは、他の方法ではテンプレート内で使用するのが難しいライブラリや API への VTL フレンドリーなインターフェイスを提供します。ディレクティブやマクロでは不可能な方法で、アクセス制御とスコープを設定できます。
3 つすべてが、さまざまなことに非常に役立ちます。要するに:
- ディレクティブは、AST またはテンプレート セクションの出力を操作するのに最適です。
- マクロは、自分自身を繰り返したり、マークアップを Java コードに忍び込ませたりしないために最適です
- ツールは、テンプレート内のデータにアクセスして操作するのに最適です