2013-09-26 22 views

回答

13

有針對可能沒有通用的解決方案,但你可以嘗試

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

這工作,如果數據模型只是一個平常Map或JavaBean,但對於更復雜的數據模型就看數據-model實現,如果它支持?keys並且它確實返回所有內容。

你也有你在模板中設置變量,可以列舉像上面,而不是隻.data_model使用.globals.namespace(這意味着當前模板命名空間)和.locals

您還可能有Configuration -level共享變量,而且也沒有辦法列出從FTL純粹的(你可以寫一個自定義TemplateMethodModel讀取Configuration.getSharedVariableNames()雖然,從模板稱呼它)。

當然,理想情況下,FreeMarker的應該有一個<#show_variables>指令或東西,這確實表明這一切盡最大努力......但遺憾的是沒有這樣的事情呢。

+0

我得到了'期望的擴展散列,但是這被評估爲散列錯誤。這是否意味着'.data_model'哈希不支持?鍵哈希運算符? –

+0

是的。非擴展哈希不能枚舉自己的鍵或值。 – ddekany