FreeMarker的优点和缺点
FreeMarker的優(yōu)點(diǎn)和缺點(diǎn) 標(biāo)簽: FreeMarker優(yōu)點(diǎn) FreeMarker缺點(diǎn) 模板引擎 struts2 一、 FreeMarker簡(jiǎn)介 FreeMarker是一個(gè)用Java語(yǔ)言編寫的模板引擎,它基于模板來(lái)生成文本輸出。 所謂模板,就是一份已經(jīng)寫好了基本內(nèi)容,有著固定格式的文檔,其中空出或者用占位符標(biāo)識(shí)的內(nèi)容,由使用者來(lái)填充,不同的使用者給出的數(shù)據(jù)是不同的。在模板中的占位符,在模板運(yùn)行時(shí),由模板引擎來(lái)解析模板,并采用動(dòng)態(tài)數(shù)據(jù)替換占位符部分的內(nèi)容。 FreeMarker與Web容器無(wú)關(guān),即在Web運(yùn)行時(shí),它并不知道Servlet或HTTP。它不僅可以用作表現(xiàn)層的實(shí)現(xiàn)技術(shù),而且還可以用于生成XML,JSP或Java 文等。 二、 FreeMarker的優(yōu)點(diǎn)和缺點(diǎn) (一) FreeMarker的優(yōu)點(diǎn) 1.使用FreeMarker的優(yōu)點(diǎn)之一,可以徹底的分離表現(xiàn)層和業(yè)務(wù)邏輯。 使用JSP 開發(fā)過(guò)程中在頁(yè)面中大量的存在業(yè)務(wù)邏輯的代碼,使得頁(yè)面內(nèi)容凌亂,在后期大量的修改維護(hù)過(guò)程中就變得非常困難。 FreeMarker根本不支持Java腳本代碼。 FreeMarker的原理就是:模板+數(shù)據(jù)模型=輸出 ,模板只負(fù)責(zé)數(shù)據(jù)在頁(yè)面中的表現(xiàn),不涉及任何的邏輯代碼,而所有的邏輯都是由數(shù)據(jù)模型來(lái)處理的。用戶最終看到的輸出是模板和數(shù)據(jù)模型合并后創(chuàng)建的。 2.使用FreeMarker的優(yōu)點(diǎn)之二,可以提高開發(fā)效率。 在我們以往的開發(fā)中,使用的都是JSP 頁(yè)面來(lái)展示數(shù)據(jù)的,即所謂的表現(xiàn)層。我們都知道,JSP在第一次執(zhí)行的時(shí)候需要轉(zhuǎn)換成Servlet類,開發(fā)階段進(jìn)行功能調(diào)適時(shí),需要頻繁的修改JSP,每次修改都要編譯和轉(zhuǎn)換,那么試想一天中我們浪費(fèi)在程序編譯的時(shí)間有多少。相對(duì)于JSP來(lái)說(shuō),FreeMarker模板技術(shù)不存在編譯和轉(zhuǎn)換的問(wèn)題,所以就不會(huì)存在上述問(wèn)題。而且開發(fā)過(guò)程中,我們?cè)诓槐卦诘却缑嬖O(shè)計(jì)開發(fā)人員完成頁(yè)面原形后,我們?cè)賮?lái)開發(fā)程序。 3.使用FreeMarker的優(yōu)點(diǎn)之三,使得開發(fā)過(guò)程中的人員分工更加明確。 以往用JSP展現(xiàn)數(shù)據(jù)時(shí),作為程序員的我們,并不熟悉界面設(shè)計(jì)技術(shù),反之界面開發(fā)人員,也并不熟悉程序語(yǔ)言。對(duì)兩者而言,交替性的工作本身就有難度。有時(shí)候稍有不慎,可能會(huì)將某個(gè)頁(yè)面元素刪除或去掉了某個(gè)程序符號(hào),使得頁(yè)面走樣或程序錯(cuò)誤,這樣就需要雙方相互溝通協(xié)作,解決出現(xiàn)的問(wèn)題。有時(shí)候因?yàn)轫?xiàng)目中的時(shí)間,任務(wù)量等因素的存在,可能這個(gè)工作就由一個(gè)人來(lái)完成,這樣就可能加大某一方開發(fā)人員的工作量。 使用FreeMarker后,作為界面開發(fā)人員,只專心創(chuàng)建HTML文件、圖像以及Web頁(yè)面的其他可視化方面,不用理會(huì)數(shù)據(jù);而程序開發(fā)人員則專注于系統(tǒng)實(shí)現(xiàn),負(fù)責(zé)為頁(yè)面準(zhǔn)備要顯示的數(shù)據(jù)。 (二)FreeMarker的缺點(diǎn) 1.使用FreeMarker的缺點(diǎn)之一,應(yīng)用FreeMarker模板技術(shù),在修改模板后,可能會(huì)看到已經(jīng)過(guò)期的數(shù)據(jù)。如:生成靜態(tài)的HTML頁(yè)面后,如果一旦模板改變,而沒(méi)有及時(shí)更新模板生成的HTML頁(yè)面的話,用戶看到的就是過(guò)期的數(shù)據(jù)。 2.使用FreeMarker的缺點(diǎn)之二,FreeMarker模板技術(shù)在應(yīng)用過(guò)程中,FreeMarker中的變量必須要賦值,如果不賦值,那么就會(huì)拋出異常。想避免錯(cuò)誤就要應(yīng)用if/elseif/else 指令進(jìn)行判段,如果對(duì)每一個(gè)變量都判斷的話,那么則反而增加了編程的麻煩。 3.使用FreeMarker的缺點(diǎn)之三,FreeMarker的map限定key必須是string,其他數(shù)據(jù)類型無(wú)法操作 4.使用FreeMarker的缺點(diǎn)之四,FreeMarker不支持集群應(yīng)用。為了編成的方便性,把序列化的東西都放到了Session中,如Session,request等,在開發(fā)的過(guò)程中確實(shí)方便,但如果將應(yīng)用放到集群中,就會(huì)出現(xiàn)錯(cuò)誤。 通過(guò)以上的闡述,希望可以令您清晰FreeMarker的優(yōu)點(diǎn)和缺點(diǎn),旨在拋磚引玉。有什么問(wèn)題可以留下您的寶貴留言,我非常愿意與大家討論。
總結(jié)
以上是生活随笔為你收集整理的FreeMarker的优点和缺点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 开发工具(二)
- 下一篇: 2013年度开源社区年会,3W咖啡免费让