FreeMarker之概念介紹(一),freemarker概念介紹
1. FreeMarker是什麼
它是一個工具,基於模板產生文本輸出的通用工具,使用java編寫。與具體的容器無關,不知道HTTP或Servlet;所以他可以應用在非Web應用程式環境中。就像是一個工廠,原材料(比如資料和文字)交給FreeMarker這個工廠,它就會將這些材料組裝在一起產生一個我們需要的產品。
它是一個Java package,面向java程式員的class library。它本身是一種範本語言,有自己的文法,但是他是脫離servlet容器獨立啟動並執行,所以在上面才會說它是一個工具,與具體的容器無關,允許程式員將其嵌入到我們的系統中。
2. 如何工作
下面的圖形是從FreeMarker官網上截下來的,這張圖就很清楚的描述了它是如何產生一個文本的。
它是需要三部分的,就像上面提到的那個工廠的例子。需要原材料,工廠和產品。
從FreeMarker的官網上知道FreeMarker本身具有編程能力,但是通常由Java程式準備需要顯示的資料(原材料),然後由FreeMarker這個工廠進行加工,加工的時候是有一個檔案作為參照,通過模板顯示準備的資料最終產生我們需要的產品。
1. 原材料
包括模板和資料。資料就是我們顯示的東西,模板顧名思義就是一種規範,可以寫成我們平時經常說的介面。定義的一種規範。
2. 工廠
FreeMarker這個模板引擎,按照模板將資料群組裝起來。
3. 產品
按照模板最終產生的檔案。
所以從上面的解釋可以瞭解到需要我們做的事情就是準備好原材料也就是資料和模板,其他的工作Freemarker全都幫我做好了。
3. 一些簡單的常用文法
這些文法雖然簡單,但是確實最常用的,簡單易懂,基本上用一遍就能夠很快的掌握了。
1、擷取模型的值。
文法和el運算式幾乎是一樣的:${bean},${bean.property}
2、內建函數。
空值處理:${bean!'我是空值'},${bean!},${bean.property!'我是空值'},${(bean.property)!'我是空值'}
HtmlEscape:${bean?html}
日期格式化:${bean?string('yyyy-MM-dd')}
還有很多很好用的內建函數,可以查閱官方文檔。
3、內建標籤。
判斷:
<#if true>
<#else>
</#if>
迴圈:
<#list array as bean>
${bean.property}
</#list>
4. 總結
最近項目中有一個功能:將查詢出來的資料和一切其他的檔案放到一起產生一個word檔案。在網上查了尋找到了一些能夠完成這個功能的工具。Freemarker就是其中之一。稍微的瞭解了一下發現這個工具挺好用的,所以整理了一些東西,這篇部落格只是簡單對FreeMarker這個工具做個簡單的介紹,下一遍部落格會使用這個工具實現兩個小例子,同時會對這個工具在深入的瞭解瞭解。