springboot整合thymleaf模板引擎

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

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標籤內只能寫這個網址,若是添加其餘網址,則會形成頁面異常。前端

異常:spring

 

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

結果爲cite標籤裏的內容「王超」被替換爲hello.springboot

th:text 是thymeleaf的語法之一,他的做用就是文本替換。無論標籤內是否有內容,都會被替換成存儲的內容。同時也要注意 thymeleaf比較嚴格,若是標籤取不到值就會報錯。服務器

常見的thymeleaf便籤以下:session

 在實際開發中因爲ModelAndView是request級別的,因此若是要在其餘頁面也展現數據,就須要使用session進行存儲。最多見的就是登錄以後要在index頁面展現用戶信息。app

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的值,頁面會報錯。jsp

因此須要用session進行會話存儲,可是thymeleaf不推薦使用內置對象。spring-boot

相關文章
相關標籤/搜索