Springboot整合thymleaf模板引擎過程解析
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了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不推薦使用內建物件。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。