我已經熟悉了Java的模板引擎FreeMarker。將對象列表傳遞給Freemarker然後循環
我已經到了可以通過哈希映射將對象傳遞給模板引擎的地步。這工作正常。但只要我嘗試將任何類型的多個對象傳遞給FreeMarker,它就會給我一個freemarker.template.TemplateException,並且抱怨它「預期收集或序列作業被評估爲freemarker.template.SimpleHash」。
從我所瞭解的各種資源中讀到這一點,這是可以預料的。
現在,我已經完成了很多腿部工作,並找到了許多人評論如何解決這個問題。但坦率地說,(a)對於很多示例,我們不清楚他們的建議在我的案例中的確切用法 - 儘管我已經知道Java基礎知識很久了,但對於某些體系結構有關Java網絡應用和(b)我很困惑哪種方法是最好的方法。
所有我想做的事情,在最簡單的水平,基本上是這樣的:
我有一個簡單的Servlet。
我有一個簡單的類(對於這個例子命名爲發票)與幾個方法和屬性。
我想有我的servlet(以某種方式)經由FreeMarker的的處理方法呈現這些對象的實例(或視圖的那些對象的)的列表/陣列/序列/ HashMap中。
我想有我.ftl模板做一個循環通過列表/陣列/順序/ HashMap和顯示方法的結果,這樣的事情:
< # list invoices as invoice>
Invoice note: ${invoice.getNote()}, Invoice Amount:${invoice.getAmount()}
</# list>
現在,我不一定要尋找快速的&骯髒的解決方案。我是FreeMarker的新手,但我想以適當的方式做到這一點,那就是優雅和優秀的設計。所以我很樂意徹底重新思考這種方法。有人能幫我看看我需要做些什麼才能使這樣的工作起作用嗎?
BTW:標籤「的FreeType 「指的是一個字體渲染引擎。您應該將此問題標記爲「freemarker」。 – 2011-05-12 17:46:15