JSP 已經存在很長時間了,很多公司還在用,它看起來像 HTML,但其實并不是,它有一些缺陷。比如,
每個頁面頂部都需要有如下聲明
與 Servlet 規范緊密耦合的,依賴 Servlet 容器(意味著無法直接瀏覽效果)。
工作過的幾家公司,凡是有前端的,工作方式都是給前端安裝 Java 開發環境,讓前端在自己電腦上啟動 Servlet 容器瀏覽效果。這樣的方式,致使后端老是幫前端解決 Java 開發環境問題,還限制了前端在開發工具上的選擇,很影響工作效率。
所以,就想到了 Thymeleaf。
第一聽說 Thymleaf 是 在 2015 年,一直想在工作中應用起來,這次終于有機會了。
使用 Thymeleaf,前端可以任意選擇一款趁手的開發工具,瀏覽效果不需要再啟動 Servlet 容器。
Thymeleaf,可以認為它就是 HTML,它沒有像 JSP 那樣的標簽庫。它是通過自定義命名空間為HTML 標簽添加 Thymeleaf 屬性。使用 Thymeleaf 的頁面,只需要聲明命令空間,來看一個簡單的頁面。
除了 th:href 屬性,其他的跟原生 HTML 完全一樣,Thymeleaf 命名空間中很多屬性都對應標準 HTML 屬性,并且具有相同的名字,但是會渲染一些計算后得到的值。
現在舉幾個簡單的例子對比一下 JSP 和 Thymealf 使用上的不同:
JSP 獲取相對 URL
Thymeleaf 獲取相對 URL
JSP 遍歷 List
Thymeleaf 遍歷 List