SpringBoot日記——Thymeleaf進階小篇


  我們做好了登錄頁,那設計一個場景吧,比如我們登錄后跳轉到公司主頁,想從公司主頁再跳轉到員工列表頁;

  這樣的場景我們該如何實現,首先要知道一些基礎知識,就是SpringBoot的一些關於請求的架構知識:

功能 請求URI 請求方式
查詢所有員工 emps GET
查詢某個員工 emp/{id} GET
跳轉到添加頁 emp GET
添加員工 emp POST
跳轉到修改頁 emp GET
修改員工信息 emp{id} PUT
刪除員工 emp{id} DELETE

 其實,這些請求在我們做登錄頁的時候已經有接觸過了,那么我們來看后邊如何應用。

 

頁面跳轉和編寫替換

  我們從主頁中已經寫過了如何從主頁跳轉到列表頁,那么我們現在要做的就是,在列表頁中展示正確的數據。

  1. 首先,添加超鏈接,也就是點擊跳轉后的頁面,同樣適用thymeleaf模板,引入模板和屬性

xmlns:th="http://www.thymeleaf.org"

  來看沒有修改前的跳轉頁面的幾個地方:

  a. 頭部的名字不是我們首頁的admin;

  b. 側邊欄中我們修改的員工管理的中文不見了;

  c. 列表數據目前OK;

 

  針對以上的問題,我要做的就是替換頭部和側邊欄,但是讓我們按照首頁一樣再寫一遍會很麻煩,所以Thymeleaf給了我們一些可以替換的功能;

  看官方文檔如何寫的:

  效果圖:

 

  兩種替換公式:

  ~{templatename: : selector}        :~{模板名::選擇器}
  ~{templatename: : fragmentname}  :~{模板名::片段名}

  三個替換屬性:

  th:insert    :將聲明的片段,整個插入到元素中

  th:replace    :將聲明引入的元素替換為公告元素
  th:includ      :將被引入的元素內容包含在標簽中
  

  1. 那,在我們的html中應用一下,就是這么寫的:(在我們需要替換的頂部欄,也就是用戶名那里,把這個元素后邊加上這個th的屬性)

<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">

  2. 然后,在我們的list.htm頁中加入這樣的一段即可實現:(注意,我這里沒有寫~{},其實是可以的;一般只有在行內才需要寫,比如[[~{}]]或者[(~{})])

<div th:replace="dashboard::topbar"></div>

  實現效果如圖:*(看,名字已經替換成了首頁我們登錄時的用戶名)

 

  3. 接下來,替換側邊欄,同樣的方法,這會我使用選擇器的那個公式:(給想要替換的側邊欄,添加一個id)

<nav class="col-md-2 d-none d-md-block bg-light sidebar" id="sidebar">

  4. 再到list.html中去引入這個id:

<div th:replace="~{dashboard::#sidebar}"></div>

  看效果:(首頁的中文頁替換過來了),是不是這樣寫頁面就簡單了很多~

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM