Freemarkerでテンプレートに渡された変数一覧を表示

テンプレート側で以下のようなコードを書いておくと、Java側から渡された変数一覧を確認できて便利。

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

例えばJava側でこのようにフロントへ渡す変数をセットしていると、

model.addAttribute("someClass", new SomeClass());

FTLでは変数名のsomeClassが表示される。 フロント側のマークアップとサーバサイドが分業していると、フロント側は渡されている変数とその名前を頻繁に確認しないといけなくて効率がよくない。このコードをmacro化しておいたらすぐ変数が確認できて楽。

.data_modelはテンプレートに渡された全てのデータを含むhash変数になっていて、built-in変数なのでどのFTLでも共通で利用できる。Freemarkerのbuilt-in変数一覧と詳しい説明はこちらのドキュメントで。
FreeMarker Manual - Special Variable Reference