1. 程式人生 > 程式設計 >Springboot整合thymleaf模板引擎過程解析

Springboot整合thymleaf模板引擎過程解析

這篇文章主要介紹了Springboot整合thymleaf模板引擎過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

thymeleaf作為springboot官方推薦使用的模板引擎,簡單易上手,功能強大,thymeleaf的功能和jsp有許多相似之處,兩者都屬於伺服器端渲染技術,但thymeleaf比jsp的功能更強大。

1. thymeleaf入門

1.1 引入座標

<!--springBoot整合thymeleaf-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

1.2 編寫controller類

@GetMapping("/index")
  public String index(Model model){
    model.addAttribute("msg","hello");
    return "index";
  }

1.3 前端頁面

頁面中的html標籤必須新增這個地址,否則無法使用thymeleaf,且html標籤內只能寫這個網址,如果新增其他網址,則會造成頁面異常。

異常:

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<cite th:text="${msg}">王超</cite>

結果為cite標籤裡的內容“王超”被替換為hello.

th:text 是thymeleaf的語法之一,他的作用就是文字替換。不管標籤內是否有內容,都會被替換成儲存的內容。同時也要注意 thymeleaf比較嚴格,如果標籤取不到值就會報錯。

常見的thymeleaf便籤如下:

在實際開發中由於ModelAndView是request級別的,所以如果要在其他頁面也展示資料,就需要使用session進行儲存。最常見的就是登陸之後要在index頁面展示使用者資訊。

2. thymeleaf使用session內建物件(不推薦)

2.1 controller類

HttpServletRequest request = HttpContextUtil.getHttpServletRequest();
request.getSession().setAttribute("user",(SysUser)SecurityUtils.getSubject().getPrincipal());

2.2 前臺頁面

<cite th:text="${session.user.getUsername()}">王超</cite>

我登陸的賬號名稱是admin,所以標籤內的王超會被替換為admin。如果用model的話是無法獲取到username的值,頁面會報錯。

所以需要用session進行會話儲存,但是thymeleaf不推薦使用內建物件。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。