FreeMarker 是一個模版引擎,一個基于文本的模板輸出工具(生成任意的HTML表單代碼)。它是一個Java package,面向Java程序員的class library。它本身并不是針對最終用戶的應用,而是允許程序員將其嵌入到他們的產品中。
FreeMarker被設計用來生成HTML Web頁面,特別是基于MVC(Model View Controller)模式的應用程序。使用 MVC 模式作為動態的WEB頁面的想法,是為了分隔頁面設計者 (HTML 設計者) 和程序員。.每個人做自己擅長的那一部分。設計者可以不通過程序員的改變或修改代碼來改變網頁的樣子,因為應用邏輯(Java程序)和頁面設計(FreeMarker 模版)是分開的。模板不會被復雜繁瑣的程序框架所破壞。即使當一個項目的程序員和HIMTL頁面的制作者是同一個人時,這種分隔也是很有用,因為這樣有助于保持應用的清晰并易于維護。
盡管FreeMarker有一些編程的能力,但它并不是一個象PHP那樣的成熟的編程語言。與Java不同的是,Java程序準備用來顯示的數據(如SQL queries),而Freemarker僅是生成文本頁,這個文本頁顯示用于模板的預備數據。
FreeMarker 不是一個Web應用框架,而更適合充當Web應用框架里的一個組件的角色,但FreeMarker引擎本身對HTTPservlets并不關心,它僅僅是生成文本。在非Web應用環境中它同樣能夠展示完美的用途。然而值得注意的是:我們為使用FreeMarker提供了方便的解決方案,作為Model2框架(如Struts)的視圖組件,你也可以在模版中使用JSP標簽。
FreeMarker是免費的,有BSD-style license。它是由OSI認證的開源軟件。