.
聲明:本人只是分享一些靠譜的床長人工智慧教程相關免費pdf下載文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
首先給大家簡單介紹一下。
是一個用語言編寫的模板引擎,它基於模板來生成文本輸出。
與容器無關,即在運行時,它並不知道或。
它不僅可以用作表現層的實現技術,而且還可以用於生成,或文等。
簡單了解了之後,現在就來講講,的優點和缺點。
一的優點的優點一,可以徹底的分離表現層和業務邏輯。
曾經在使用開發過程中發現在頁面中大量的存在業務邏輯的代碼,使得頁面內容凌亂,在後期大量的修改維護過程中就變得非常困難。
根本不支持腳本代碼。
的原理就是模板數據模型輸出,模板只負責數據在頁面中的表現,不涉及任何的邏輯代碼,而所有的邏輯都是由數據模型來處理的。
用戶最終看到的輸出是模板和數據模型合併後創建的。
的優點二,可以提高開發效率。
根據以往的開發經驗,使用的都是頁面來展示數據的,即所謂的表現層。
大家都知道,在第一次執行的時候需要轉換成類,開發階段進行功能調適時,需要頻繁的修改,每次修改都要編譯和轉換,那麼試想一天中我們浪費在程序編譯的時間有多少。
相對於來說,模板技術不存在編譯和轉換的問題,所以就不會存在上述問題。
而且開發過程中,大家在不必在等待界面設計開發人員完成頁面原形後,大家再來開發程序。
的優點三,使得開發過程中的人員分工更加明確。
以往用,展現數據時,作為程式設計師的我們,並不熟悉界面設計技術,反之界面開發人員,也並不熟悉程序語言。
對兩者而言,交替性的工作本身就有難度。
有時候稍有不慎,可能會將某個頁面元素刪除或去掉了某個程序符號,使得頁面走樣或程序錯誤,這樣就需要雙方相互溝通協作,解決出現的問題。
有時候因為項目中的時間,任務量等因素的存在,可能這個工作就由一個人來完成,這樣就可能加大某一方開發人員的工作量。
使用後,作為界面開發人員,只專心創建文件像以及頁面的其他可視化方面,不用理會數據而程序開發人員則專注於系統實現,負責為頁面準備要顯示的數據。
二的缺點的缺點一,應用模板技術,在修改模板後,可能會看到已經過期的數據。
如生成靜態的頁面後,如果一旦模板改變,而沒有及時更新模板生成的頁面的話,用戶看到的就是過期的數據。
的缺點二,模板技術在應用過程中,中的變量必須要賦值,如果不賦值,那麼就會拋出異常。
想避免錯誤就要應用指令進行判段,如果對每一個變量都判斷的話,那麼則反而增加了編程的麻煩。
的缺點三,的限定必須是,其他數據類型無法操作。
的缺點四,不支持集群應用。
為了編成的方便性,把序列化的東西都放到了中,如,,等,在開發的過程中確實方便,但如果將應用放到集群中,就會出現錯誤。
你還在使用伺服器頁面俗稱嗎?我曾經也是,但是幾年前我拋棄了它們,並且再也沒有用過了。
是個很好的概念,但是它卻剝奪了開發的樂趣。
對我而言,這些都是小事,比如無法在頁面模板上使用單獨的文件和,不能調用表達式語言的方法,在運行時無法合併,重新排列頁面的各個部分。
所以我轉而使用模板。
已經存在一段時間了,如果你最近沒有關注過的話,那這有些建議給你,讓你考慮下個
應用使用。
類加載沒有問題
如果你已經開發應用程式一段時間,那麼對於的問題可能並不陌生。
由於模板不編譯成類,它們不佔用空間,並不需要一個新的類加載器加載。
模板加載器
直接從數據源加載頁面和模板豈不是很好?也許從或資料庫。
也許你只想把它們放在一個地方,可以不重新部署整個應用程式就能更新它們。
那麼在中你是很難做到這一點的,但提供的模板加載器就是為了這個目的。
你可以使用內建類或者創建你自己的實現。
從中加載模板。
在文件系統中從指定文件夾加載模板。
從一個字符串中加載模板。
從中加載模板。
你必須要實現方法,但應該很容易做到。
從上下文中加載模板。
也可以將多個加載器鏈在一起形成一個系列模板裝載器。
我通常使用
指向下一個內容文件夾。
可以在運行時嵌入模板
能讓你創建真正的模板,而不只是片段,還記得中的和嗎?允許你使用一個模板在本例中為
並將其添加到另一個模板區域。
可以以編程的方式選擇哪個模板進入區。
還可以添加多個模板一起放入同一區域。
甚至可以將字符串值或計算的值放入區域。
在中試試做到這些。
沒有導入
要求你導入每個你需要使用的類,就像一個常規的類一樣。
模板,嗯,僅僅是模板。
可以被包括在另一個模板中,但目前還不需要導入類。
支持標籤
使用的一個理由是有可用性很好的標籤庫。
好消息是支持標籤。
壞消息是它們使用的語法,不是語法。
表達式語言中的方法調用
除非你的目標是標準的容器,那麼表達式語言中方法調用是不可用的。
不是所有人都同意表達式中方法調用是一件好事,但是當你需要它們的時候,使用真的太痛苦了。
但是同等對待其中每個引用。
內置空字符串處理
和都可以在表達式語言中處理空值,但在可用性上更先進一些。
感嘆號告訴對表達式自動檢查值和空字符串。
如果或者中有一個為空值或空字符串,你只會得到標籤
另一個選擇是感嘆號後包括你的默認值。
如果所有值丟失,你會得到
請參見處理缺少的值了解更多細節。。。。