2010-01-07 18 views
1

可以使用freemarker來遍歷集合並輸出集合中每個項目的屬性?可以用freemarker來輸出自定義集合嗎?

該集合屬性將是動態的,即不能被硬編碼,將從數據庫中生成。

我在找什麼:能夠指向不同的數據庫,並遍歷每個表並輸出表列。

回答

2

也許,雖然它取決於數據在Java域中的結構。 Freemarker處理集合的基本操作(哈希,序列)。如果你有Java中的Map,Freemarker會讓你像使用「散列」一樣使用它(你可以直接獲取它的鍵),Java中的Lists看起來像Freemaker中的「序列」。

如果你有,比如說,在Java中,List<List<String>>代表的表的列表,那麼你可以漫步其中在FTL喜歡:

<#-- getMyTables() is a call into the primary template model object --> 
<#assign myTables = getMyTables() /> 
<#list myTables as table> 
    <#list table as column> 
    ${column} 
    </#list> 
</#list> 

如果你的集合是不實現的列表或定製類Map接口,那麼你當然可以直接訪問他們的方法(Freemarker支持直接訪問模板模型上的方法,以及任何你可以從模板模型中獲取的方法)。例如。

<#-- getMyTablesAsList() is a call into the primary template model object --> 
<#assign myTables = getMyTablesAsList() /> 
<#list myTables as table> 
    <#list table.getColumnNames() as column> 
    ${column} 
    </#list> 
</#list> 
+1

哇這是偉大的,它提供了一個安全的方式輸出爲最終用戶rigth?就像他們只能訪問我們注入視圖頁面的類一樣? – mrblah 2010-01-07 04:54:47

+0

是的,你將不得不手動注入它,以便在freemarker中引用對象 – Chii 2010-01-07 09:52:24

相關問題