I want to see all variables in freemarker data-model, just like struts2 debug tag to show value stack.
Is there a way for freemarker to do this ?
An even more detailed way would be this macro:
<#macro dump_object object debug=false>
<#compress>
<#if object??>
<#attempt>
<#if object?is_node>
<#if object?node_type == "text">${object?html}
<#else><${object?node_name}<#if object?node_type=="element" && object.@@?has_content><#list object.@@ as attr>
${attr?node_name}="${attr?html}"#list>#if>>
<#if object?children?has_content><#list object?children as item>
<@dump_object object=item/>#list><#else>${object}#if> </${object?node_name}>#if>
<#elseif object?is_method>
#method
<#elseif object?is_sequence>
[<#list object as item><@dump_object object=item/><#if !item?is_last>, #if>#list>]
<#elseif object?is_hash_ex>
{<#list object as key, item>${key?html}=<@dump_object object=item/><#if !item?is_last>, #if>#list>}
<#else>
"${object?string?html}"
#if>
<#recover>
<#if !debug>#if>
#attempt>
<#else>
null
#if>
#compress>
#macro>
<@dump_object object=.data_model/>
This gives you a full dump of your data model.