thymeleaf做爲springboot官方推薦使用的模板引擎,簡單易上手,功能強大,thymeleaf的功能和jsp有許多類似之處,二者都屬於服務器端渲染技術,但thymeleaf比jsp的功能更強大。html
<!--springBoot整合thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
@GetMapping("/index")
public String index(Model model){ model.addAttribute("msg","hello"); return "index"; }
頁面中的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
HttpServletRequest request = HttpContextUtil.getHttpServletRequest();
request.getSession().setAttribute("user", (SysUser)SecurityUtils.getSubject().getPrincipal());
<cite th:text="${session.user.getUsername()}">張三</cite>
我登錄的帳號名稱是admin,因此標籤內的張三會被替換爲admin。若是用model的話是沒法獲取到username的值,頁面會報錯。jsp
因此須要用session進行會話存儲,可是thymeleaf不推薦使用內置對象。spring-boot