11

debug値スタックを表示するための struts2 タグと同じように、freemarker データモデルですべての変数を表示したい。

freemarker がこれを行う方法はありますか?

4

3 に答える 3

24

そのための普遍的な解決策はありませんが、試すことができます

<#list .data_model?keys as key>
  ${key}
</#list>

これは、データ モデルが通常のMapJavaBean である場合に機能しますが、より洗練されたデータ モデルの場合、データ モデルの実装がサポートするかどうか、?keysおよび実際にすべてを返すかどうかは、データ モデルの実装次第です。

テンプレートに設定した変数もあります。.data_modelこれは、 .globals, .namespace(現在のテンプレートの名前空間を意味します) および.locals.

レベルの共有変数もあるかもしれませんがConfiguration、それらを純粋に FTL からリストする方法はありません (TemplateMethodModel読み取り用のカスタムをConfiguration.getSharedVariableNames()作成し、テンプレートから呼び出すことはできます)。

もちろん、理想的には、FreeMarker には、<#show_variables>これらすべてを表示するために最善を尽くすディレクティブまたは何かが必要です... しかし、残念ながら、そのようなものはまだありません。

于 2013-09-26T21:40:20.087 に答える