FreeMarker的優點和缺點

一、 FreeMarker簡介
FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。
所謂模板,就是一份已經寫好了基本內容,有着固定格式的文檔,其中空出或者用佔位符標識的內容,由使用者來填充,不同的使用者給出的數據是不同的。在模板中的佔位符,在模板運行時,由模板引擎來解析模板,並採用動態數據替換佔位符部分的內容。
FreeMarker與Web容器無關,即在Web運行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 文等。


二、 FreeMarker的優點和缺點
(一) FreeMarker的優點
1.使用FreeMarker的優點之一,可以徹底的分離表現層和業務邏輯。
使用JSP 開發過程中在頁面中大量的存在業務邏輯的代碼,使得頁面內容凌亂,在後期大量的修改維護過程中就變得非常困難。
FreeMarker根本不支持Java腳本代碼。
FreeMarker的原理就是:模板+數據模型=輸出 ,模板只負責數據在頁面中的表現,不涉及任何的邏輯代碼,而所有的邏輯都是由數據模型來處理的。用戶最終看到的輸出是模板和數據模型合併後創建的。
      
2.使用FreeMarker的優點之二,可以提高開發效率。
在我們以往的開發中,使用的都是JSP 頁面來展示數據的,即所謂的表現層。我們都知道,JSP在第一次執行的時候需要轉換成Servlet類,開發階段進行功能調適時,需要頻繁的修改JSP,每次修改都要編譯和轉換,那麼試想一天中我們浪費在程序編譯的時間有多少。相對於JSP來說,FreeMarker模板技術不存在編譯和轉換的問題,所以就不會存在上述問題。而且開發過程中,我們在不必在等待界面設計開發人員完成頁面原形後,我們再來開發程序。

3.使用FreeMarker的優點之三,使得開發過程中的人員分工更加明確。
以往用
JSP展現數據時,作爲程序員的我們,並不熟悉界面設計技術,反之界面開發人員,也並不熟悉程序語言。對兩者而言,交替性的工作本身就有難度。有時候稍有不慎,可能會將某個頁面元素刪除或去掉了某個程序符號,使得頁面走樣或程序錯誤,這樣就需要雙方相互溝通協作,解決出現的問題。有時候因爲項目中的時間,任務量等因素的存在,可能這個工作就由一個人來完成,這樣就可能加大某一方開發人員的工作量。
使用FreeMarker後,作爲界面開發人員,只專心創建HTML文件、圖像以及Web頁面的其他可視化方面,不用理會數據;而程序開發人員則專注於系統實現,負責爲頁面準備要顯示的數據。


(二)FreeMarker的缺點
1.使用FreeMarker的缺點之一,應用FreeMarker模板技術,在修改模板後,可能會看到已經過期的數據。如:生成靜態的HTML頁面後,如果一旦模板改變,而沒有及時更新模板生成的HTML頁面的話,用戶看到的就是過期的數據。
2.使用FreeMarker的缺點之二,FreeMarker模板技術在應用過程中,FreeMarker中的變量必須要賦值,如果不賦值,那麼就會拋出異常。想避免錯誤就要應用if/elseif/else 指令進行判段,如果對每一個變量都判斷的話,那麼則反而增加了編程的麻煩。
3.使用FreeMarker的缺點之三,FreeMarker的map限定key必須是string,其他數據類型無法操作
4.使用FreeMarker的缺點之四,FreeMarker不支持集羣應用。爲了編成的方便性,把序列化的東西都放到了Session中,如
Session,request等,在開發的過程中確實方便,但如果將應用放到集羣中,就會出現錯誤。

通過以上的闡述,希望可以令您清晰FreeMarker的優點和缺點,旨在拋磚引玉。有什麼問題可以留下您的寶貴留言,我非常願意與大家討論。

原文作者:http://www.po-soft.com/hi/hailang

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章