使用している Velocity テンプレート エンジンが正しいことを確認するために、Velocity テンプレート エンジンの使用に関していくつか質問したいと思います。
テンプレートからアクセスしたいデータモデル(モデルの深いオブジェクトグラフ)があります。モデルごとに 1 つのテンプレートを用意するのが最もクリーンな方法のようです: PageModel -> page.vm |--SectionModel -> section.vm
page.vm が速度エンジンのカスタム ラッパーを呼び出し、section.vm のレンダリングされた文字列表現を取得するように要求するのは適切でしょうか。その理由は、section.vm が page.vm に設定されたコンテキスト変数を共有しないようにしたいからです。
各テンプレートには、 $model コンテキスト変数を介してアクセスできるモデルがあるという考え方です。各サブテンプレートは #parse ディレクティブに含まれず、ホスト テンプレートにレンダリングされます (サブテンプレートは、サブモデルに設定された独自の $model 属性も使用します)。
私の説明が理にかなっていることを願っています。そのような設計に関連するパフォーマンス上の欠点はありますか? 私の懸念は、常に Template オブジェクトを作成し、マージ メソッドを呼び出してそれらをレンダリングすると、パフォーマンスが大幅に低下する可能性があることです。
あなたの提案に感謝します。