1
可以使用freemarker來遍歷集合並輸出集合中每個項目的屬性?可以用freemarker來輸出自定義集合嗎?
該集合屬性將是動態的,即不能被硬編碼,將從數據庫中生成。
我在找什麼:能夠指向不同的數據庫,並遍歷每個表並輸出表列。
可以使用freemarker來遍歷集合並輸出集合中每個項目的屬性?可以用freemarker來輸出自定義集合嗎?
該集合屬性將是動態的,即不能被硬編碼,將從數據庫中生成。
我在找什麼:能夠指向不同的數據庫,並遍歷每個表並輸出表列。
也許,雖然它取決於數據在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>
哇這是偉大的,它提供了一個安全的方式輸出爲最終用戶rigth?就像他們只能訪問我們注入視圖頁面的類一樣? – mrblah 2010-01-07 04:54:47
是的,你將不得不手動注入它,以便在freemarker中引用對象 – Chii 2010-01-07 09:52:24