當前位置:編程學習大全網 - 源碼下載 - SpringBoot頁面展示Thymeleaf

SpringBoot頁面展示Thymeleaf

開發傳統Java WEB工程時,我們可以使用JSP頁面模板語言,但是在SpringBoot中已經不推薦使用了。SpringBoot支持如下頁面模板語言

上面並沒有列舉所有SpringBoot支持的頁面模板技術。其中Thymeleaf是SpringBoot官方所推薦使用的,下面來談談Thymeleaf壹些常用的語法規則。

要想使用Thhymeleaf,首先要在pom.xml文件中單獨添加Thymeleaf依賴。

Spring Boot默認存放模板頁面的路徑在 src/main/resources/templates 或者 src/main/view/templates ,這個無論是使用什麽模板語言都壹樣,當然默認路徑是可以自定義的,不過壹般不推薦這樣做。另外Thymeleaf默認的頁面文件後綴是 .html 。

在MVC的開發過程中,我們經常需要通過 Controller 將數據傳遞到頁面中,讓頁面進行動態展示。

創建壹個Controller對象,在其中進行參數的傳遞

在SpringBoot默認的頁面路徑下創建show.html文件,內容如下

可以看到在 p 標簽中有 th:text 屬性,這個就是thymeleaf的語法,它表示顯示壹個普通的文本信息。

如果我們要顯示的信息是存在資源文件中的,同樣可以在頁面中顯示,例如資源文件中定義了內容 welcome.msg=歡迎{0}光臨! 。可以在頁面中將其顯示

另外,在 th:utext 中還能做壹些基礎的數學運算

如果我們想要傳遞到的頁面的信息,它本身是帶有CSS樣式的,這個時候如何在頁面中將攜帶的樣式信息也顯示出來?此時我們的控制器方法這樣寫。

此時頁面中需要借助 th:utext 屬性進行顯示

通過瀏覽器查看頁面源碼可以看出 th:utext 和 th:text 的區別是: th:text 會對 < 和 > 進行轉義,而 th:utext 不會轉義。

我們常常需要將壹個bean信息展示在前端頁面當中。

上面給出了兩種展現方式,壹種是通過${屬性},另外壹種是通過 {屬性}。

關於“${屬性}”和“ {屬性}”的區別?

$訪問完整信息,而訪問指定對象中的屬性內容, 如果訪問的只是普通的內容兩者沒有區別;

在 thymeleaf 之中提供有相應的集合的處理方法,例如:在使用 List 集合的時候可以考慮采用 get()方法獲取指定索引的數據,那麽在使用 Set 集合的時候會考慮使用 contains()來判斷某個數據是否存在,使用 Map 集合的時候也希望可以使用 containsKey()判斷某個 key 是否存在,以及使用get()根據 key 獲取對應的 value,而這些功能在之前並不具備,下面來觀察如何在頁面中使用此類操作

在傳統WEB工程開發時,路徑的處理操作是有點麻煩的。SpringBoot中為我們簡化了路徑的處理。

頁面之間的跳轉也能通過@{}來實現

雖然在這種模版開發框架裏面是不提倡使用內置對象的,但是很多情況下依然需要使用內置對象進行處理,所以下面來看下如何在頁面中使用JSP內置對象。

thymeleaf 考慮到了實際的開發情況,因為 request 傳遞屬性是最為常用的,但是 session 也有可能使用,例如:用戶登錄之後需要顯示用戶 id,那麽就壹定要使用到 session,所以現在必須增加屬性範圍的形式後才能夠正常使用。在 thymeleaf 裏面也支持有 JSP 內置對象的獲取操作,不過壹般很少這樣使用。

所有的頁面模版都存在各種基礎邏輯處理,例如:判斷、循環處理操作。在 Thymeleaf 之中對於邏輯可以使用如下的壹些運算符來完成,例如:and、or、關系比較(>、<、>=、<=、==、!=、lt、gt、le、ge、eq、ne)。

通過控制器傳遞壹些屬性內容到頁面之中:

不滿足條件的判斷

通過swith進行分支判斷

在實際開發過程中常常需要對數據進行遍歷展示,壹般會將數據封裝成list或map傳遞到頁面進行遍歷操作。

我們常常需要在壹個頁面當中引入另壹個頁面,例如,公用的導航欄以及頁腳頁面。thymeleaf中提供了兩種方式進行頁面引入。

可以看到頁面當中還存在壹個變量projectName,這個變量的值可以在引入頁面中通過 th:with="projectName=百度" 傳過來。

  • 上一篇:Otter源代碼分析
  • 下一篇:了解法寶系統神跡2(終極封測)
  • copyright 2024編程學習大全網