freemarker.jar是一款基于java语言编写的模板引擎,主要用于表现层的实现,生成XML、jsp、java等,为了保证模板的视觉、布局和格式,使用此款軟件可以帮助用户轻松实现。是java程序员开发的必备组件,需要的可以下载!
軟件功能
1.通用數據模型
FreeMarker不是直接反射到Java對象,Java對象通過插件式對象封裝,以變量方式在模板中顯示。
可以使用抽象(接口)方式表示對象(JavaBean、XML文檔、SQL查詢結果集等等),告訴模板開發者使用。方法,使其不受技術細節的打擾。
2. 模板语言
所有常用的指令:include、if/elseif/else、循環結構。
在模板中創建和改變變量。
幾乎在任何地方都可以使用複雜表達式來指定值。
命名的宏,可以具有位置參數和嵌套內容。
名字空間有助于建立和維護可重用的宏庫,或者將一個大工程分成模塊,而不必擔心名字沖突。
輸出轉換塊:在嵌套模板片段生成輸出時,轉換HTML轉義、壓縮、語法高亮等等;可以定義自己的轉換。
3.XML處理能力
<#recurse> 和<#visit>指令(2.3版本)用于递归遍历XML树。
在模板中清楚和直接的訪問XML對象模型。
4. 为Web准备
在模板語言中內建處理典型Web相關任務(如HTML轉義)的結構。
能够集成到Model2 Web应用框架中作为JSP的替代。
支持JSP標記庫。
爲MVC模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員。
5. 智能的国际化和本地化
字符集智能化(內部使用UNICODE)。
數字格式本地化敏感。
日期和時間格式本地化敏感。
非US字符集可以用作標識(如變量名)。
多種不同語言的相同模板。
6. 通用性
能夠生成各種文本:HTML、XML、RTF、Java源代碼等等。
易于嵌入到産品中:輕量級;不需要Servlet環境。
插件式模板載入器:可以從任何源載入模板,如本地文件、數據庫等等。
可以按所需生成文本:保存到本地文件;作爲Email發送;從Web應用程序發送它返回給Web浏覽器。
freemarker.jar工作原理
首先,假設一個應用系統需要一個HTML頁面如下所示:(小編自己編的,如有雷同,也沒辦法,畢竟代碼都這樣)。
页面中的用户名(即上面的“Tom”)是登錄这个网页的访问者的名字, 并且最新产品的数据应该来自于数据库才能随时更新。所以,不能直接在HTML页面中输入“Tom”、“bluecat”及链接, 不能使用静态HTML代码。可以使用要求输出的模板来解决,模板和静态页面是相同的,只是它会包含一些FreeMarker将它们变成动态内容的指令:
模板文件存放在Web服務器上,當有人來訪問這個頁面,FreeMarker就會介入執行,然後動態轉換模板,用最新的數據內容替換模板中${...}的部分,之後將結果發送到訪問者的Web浏覽器中。訪問者的Web浏覽器就會接收到例如第一個HTML示例那樣的內容(也就是沒有FreeMarker指令的HTML代碼),訪問者也不會察覺到服務器端使用的FreeMarker。(存儲在Web服務器端的模板文件是不會被修改的;替換也僅僅出現在Web服務器的響應中。)
为模板准备的数据整体被称作为数据模型。数据模型是树形结构(就像硬盘上的文件夹和文件),在视觉效果上, 数据模型可以是(这只是一个形象化显示,数据模型不是文本格式,它来自于Java对象):
早期版本中,可以從數據模型中選取這些值,使用user和latestProduct.name表達式即可。類比于硬盤的樹形結構,數據模型就像一個文件系統,“(root)”和latestProduct就對應著目錄(文件夾),而user、url和name就是這些目錄中的文件。
总体上,模板和数据模型是FreeMarker来生成输出所必须的组成部分:模板 + 数据模型 = 输出。
