こんにちはフリーマーカーの達人
freemarker 関数とマクロの違いは、マクロは出力に出力できますが、値を返すことはできませんが、関数は値を返すことができますが、出力に出力できないことです。
さて、値を出力して返す必要があるため、問題が発生しています。
freemarker を使用して再帰的なツリー探索を行っているため、再帰的に呼び出されるマクロがあります。ツリーが探索されているため、ノード情報を出力に出力するだけでなく、探索されたノードに関する統計を計算して返す必要があります (探索されたノードの特定のプロパティの合計など)。
再帰的に呼び出されるマクロを使用すると、ノード情報を出力できますが、呼び出しエンティティに統計を返すことはできません。
再帰的に呼び出される関数を使用すると、統計を返すことはできますが、出力にノード情報を出力することはできません。
解決策の 1 つは、ツリーを 2 回探索することです。1 回目はノード情報を出力し、もう 1 回目は統計を収集します。
誰かがより良い解決策を提案できますか?
ありがとう