FreeMarker 是一個模版引擎,一個基于文本的模板輸出工具(生成任意的HTML表單代碼)。它是一個Java package,面向Java程序員的class library。它本身并不是針對最終用戶的應(yīng)用,而是允許程序員將其嵌入到他們的產(chǎn)品中。
FreeMarker被設(shè)計(jì)用來生成HTML Web頁面,特別是基于MVC(Model View Controller)模式的應(yīng)用程序。使用 MVC 模式作為動態(tài)的WEB頁面的想法,是為了分隔頁面設(shè)計(jì)者 (HTML 設(shè)計(jì)者) 和程序員。.每個人做自己擅長的那一部分。設(shè)計(jì)者可以不通過程序員的改變或修改代碼來改變網(wǎng)頁的樣子,因?yàn)閼?yīng)用邏輯(Java程序)和頁面設(shè)計(jì)(FreeMarker 模版)是分開的。模板不會被復(fù)雜繁瑣的程序框架所破壞。即使當(dāng)一個項(xiàng)目的程序員和HIMTL頁面的制作者是同一個人時,這種分隔也是很有用,因?yàn)檫@樣有助于保持應(yīng)用的清晰并易于維護(hù)。
盡管FreeMarker有一些編程的能力,但它并不是一個象PHP那樣的成熟的編程語言。與Java不同的是,Java程序準(zhǔn)備用來顯示的數(shù)據(jù)(如SQL queries),而Freemarker僅是生成文本頁,這個文本頁顯示用于模板的預(yù)備數(shù)據(jù)。

FreeMarker 不是一個Web應(yīng)用框架,而更適合充當(dāng)Web應(yīng)用框架里的一個組件的角色,但FreeMarker引擎本身對HTTP或servlets并不關(guān)心,它僅僅是生成文本。在非Web應(yīng)用環(huán)境中它同樣能夠展示完美的用途。然而值得注意的是:我們?yōu)槭褂?/span>FreeMarker提供了方便的解決方案,作為Model2框架(如Struts)的視圖組件,你也可以在模版中使用JSP標(biāo)簽。
FreeMarker是免費(fèi)的,有BSD-style license。它是由OSI認(rèn)證的開源軟件。