FreeMarker軟件介紹
FreeMarker.jar,簡單的說就是一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本(HTML網(wǎng)頁、電子郵件、配置文件、源代碼等)的通用工具,它的出現(xiàn)主要是為了解決Struts2當(dāng)中缺少freemarker.jar的問題。它不是為最終用戶設(shè)計(jì)的,而是一個(gè)Java類庫,一個(gè)程序員可以嵌入到他們開發(fā)的產(chǎn)品中的組件,也就是說這個(gè)就跟一個(gè)工具組件一樣,與其它軟件配合使用。它是用Java語言編寫的,主要用于MVC中的視圖層,生成HTML顯示數(shù)據(jù)給客戶端,可以完全替代JSP。軟件是獨(dú)立于Web容器,也就是說,它在Web運(yùn)行時(shí)不知道servlet或HTTP,它不僅可以用作表示層的實(shí)現(xiàn)技術(shù),還可以生成Java編程語言等。
FreeMarker軟件特色
模板并沒有包含程序邏輯 來查找當(dāng)前的訪問者是誰,或者去查詢數(shù)據(jù)庫獲取最新的產(chǎn)品。顯示的數(shù)據(jù)是在FreeMarker之外準(zhǔn)備的,通常是一些“真正的”編程語言(比如Java )所編寫的代碼。模板作者無需知道這些值是如何計(jì)算出的。事實(shí)上,這些值的計(jì)算方式可以完全被修改,而模板可以保持不變,而且頁面的樣式也可以完全被修改而無需改動(dòng)模板。當(dāng)模板作者(設(shè)計(jì)師)和程序員不是同一人時(shí),顯示邏輯和業(yè)務(wù)邏輯相分離的做法是非常有用的,即便模板作者和程序員是一個(gè)人,這么來做也會(huì)幫助管理應(yīng)用程序的復(fù)雜性。保證模板專注于顯示問題(視覺設(shè)計(jì) ,布局和格式化 )是高效使用模板引擎的關(guān)鍵
FreeMarker工作原理
假設(shè)在一個(gè)應(yīng)用系統(tǒng)中需要一個(gè)HTML頁面如下:
頁面中的用戶名(即上面的“Big Joe”)是登錄這個(gè)網(wǎng)頁的訪問者的名字, 并且最新產(chǎn)品的數(shù)據(jù)應(yīng)該來自于數(shù)據(jù)庫才能隨時(shí)更新。所以,不能直接在HTML頁面中輸入“Big Joe”、“greenmouse”及鏈接, 不能使用靜態(tài)HTML代碼。可以使用要求輸出的模板來解決,模板和靜態(tài)頁面是相同的,只是它會(huì)包含一些FreeMarker將它們變成動(dòng)態(tài)內(nèi)容的指令:
模板文件存放在Web服務(wù)器上,當(dāng)有人來訪問這個(gè)頁面,F(xiàn)reeMarker就會(huì)介入執(zhí)行,然后動(dòng)態(tài)轉(zhuǎn)換模板,用最新的數(shù)據(jù)內(nèi)容替換模板中${...}的部分,之后將結(jié)果發(fā)送到訪問者的Web瀏覽器中。訪問者的Web瀏覽器就會(huì)接收到例如第一個(gè)HTML示例那樣的內(nèi)容(也就是沒有FreeMarker指令的HTML代碼),訪問者也不會(huì)察覺到服務(wù)器端使用的FreeMarker。(存儲(chǔ)在Web服務(wù)器端的模板文件是不會(huì)被修改的;替換也僅僅出現(xiàn)在Web服務(wù)器的響應(yīng)中。)
為模板準(zhǔn)備的數(shù)據(jù)整體被稱作為數(shù)據(jù)模型。數(shù)據(jù)模型是樹形結(jié)構(gòu)(就像硬盤上的文件夾和文件),在視覺效果上, 數(shù)據(jù)模型可以是(這只是一個(gè)形象化顯示,數(shù)據(jù)模型不是文本格式,它來自于Java對(duì)象):
早期版本中,可以從數(shù)據(jù)模型中選取這些值,使用user和latestProduct.name表達(dá)式即可。類比于硬盤的樹形結(jié)構(gòu),數(shù)據(jù)模型就像一個(gè)文件系統(tǒng),“(root)”和latestProduct就對(duì)應(yīng)著目錄(文件夾),而user、url和name就是這些目錄中的文件。
總體上,模板和數(shù)據(jù)模型是FreeMarker來生成輸出所必須的組成部分:模板 + 數(shù)據(jù)模型 = 輸出。
FreeMarker更新日志
1.對(duì)部分功能進(jìn)行了優(yōu)化
2.解了好多不能忍的bug
華軍小編推薦:
FreeMarker一直以來是大多數(shù)小伙伴常用編程開發(fā)軟件,在網(wǎng)民心目中的可是有這霸主地位可見一般,華軍軟件園小編同學(xué)推薦廣大用戶下載FreeMarker使用,快來下載吧,另外還有Maven、OpenCart、Java2 Runtime Environment、Eclipse IDE for Java EE Developers For Linux(64-bit)、GCC For Linux提供下載。
您的評(píng)論需要經(jīng)過審核才能顯示
有用
有用
有用