從零開始的Spring Boot學習【十三】【模板Thymeleaf(一)】

使用過ssm,ssh等等的框架或者是動態的web項目的童鞋,基本都使用過JSP,但是在Spring Boot中,默認是不支持JSP的。什麼?!不支持JSP?爲啥不支持捏?

JSP技術Spring Boot官方是不推薦的原因:

1.在Tomcat上,JSP不能在嵌套在Tomcat容器解析即不能打包成可執行的jar情況下解析

2.Jetty嵌套的容器不支持JSP(Spring Boot 內嵌Jetty ,Tomcat ,Undertow ,默認是Tomcat)

3.Undertow同上

那它支持啥?Spring Boot既然不支持JSP,那麼肯定就有一個更加簡潔明瞭,方便編寫的新技術了,對於一直使用JSP的人來說,一開始肯定會很不習慣,但是過段時間就會發現它的好處。模板引擎有很多種,例如Freemarker,Velocity,Thymeleaf。

JSP

優點:

1、功能強大,可以寫java代碼
2、支持jsp標籤(jsp tag)
3、支持表達式語言(el)
4、官方標準,用戶羣廣,豐富的第三方jsp標籤庫
5、性能良好。jsp編譯成class文件執行,有很好的性能表現

缺點:

jsp沒有明顯缺點,非要挑點骨頭那就是,由於可以編寫java代碼,如使用不當容易破壞mvc結構。


Freemarker

FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。FreeMarker與Web容器無關,即在Web運行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 等。

目前企業中:主要用Freemarker做靜態頁面或是頁面展示

優點:

1、不能編寫java代碼,可以實現嚴格的mvc分離
2、性能非常不錯
3、對jsp標籤支持良好
4、內置大量常用功能,使用非常方便
5、宏定義(類似jsp標籤)非常方便
6、使用表達式語言

缺點:

1、不是官方標準
2、用戶羣體和第三方標籤庫沒有jsp多

 

Velocity

優點:

1、不能編寫java代碼,可以實現嚴格的mvc分離
2、性能良好,據說比jsp性能還要好些
3、使用表達式語言,據說jsp的表達式語言就是學velocity的

缺點:

1、不是官方標準
2、用戶羣體和第三方標籤庫沒有jsp多。
3、對jsp標籤支持不夠好


Thymeleaf

Thymeleaf是個XML/XHTML/HTML5模板引擎,可以用於Web與非Web應用。

Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標籤屬性添加到模板中即可。接下來,這些標籤屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。Thymeleaf的可擴展性也非常棒。你可以使用它定義自己的模板屬性集合,這樣就可以計算自定義表達式並使用自定義邏輯。這意味着Thymeleaf還可以作爲模板引擎框架。

優點:

靜態html嵌入標籤屬性,瀏覽器可以直接打開模板文件,便於前後端聯調。

springboot官方推薦方案。

缺點:

模板必須符合xml規範。

js腳本必須加入。
————————————————
參考鏈接:https://blog.csdn.net/ztchun/article/details/76407612

 

當然說了那麼多,大家還是要去了解,學習自己纔能有所體會。

Spring Boot推薦使用是是模板引擎 Thymeleaf,它設計格式是:網頁=模板+數據。也就是說一個是負責顯示頁面,一個是負責頁面數據的部分。這樣頁面就不會像html,jsp那樣凌亂,也能很快的分析出,到底是前端代碼的問題,還是後端沒有傳回數據的問題。現在已經成爲了一種趨勢,所以學會一兩種模板引擎顯得非常有必要。

這裏,博主形象的畫了一幅圖,大家應該能加深瞭解什麼是模板引擎了。好了這章先做一個大概的瞭解,有一個模板引擎的概念,大家也要去轉換下思想,不要抓着JSP不放,現在互聯網發展迅猛,每時每刻都有新的東西,新的思想出現,要緊跟時代,接受新事物。

我們下一章開始講Thymeleaf模板。

關注博主,更多精彩!

 

上一章:從零開始的Spring Boot學習【十二】【處理Web靜態資源】

下一章:從零開始的Spring Boot學習【十四】【模板Thymeleaf(二)】

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