1.經常使用的 Spring Boot 2.x 模板引擎和官方推薦案例html
1)JSP(後端渲染,消耗性能)java
Java Server Pages 動態網頁技術,由應用服務器中的 JSP 引擎來編譯和執行,再將生成的整個頁面返回給客戶端。優勢是:能夠寫java代碼、支持表達式語言(el、jstl)、內建函數。spring
但 JSP 本質上是 Servlet,它很是佔用 JVM 內存。Java Web 官方推薦,但 Spring Boot 不推薦 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations後端
2)Freemarker
瀏覽器
FreeMarker Template Language(FTL) 文件通常保存爲 xxx.ftl。嚴格依賴 MVC 模式,不依賴 Servlet 容器(不佔用JVM內存),支持內建函數緩存
3)Thymeleaf (主推)
服務器
輕量級的模板引擎(負責邏輯業務的不推薦,解析 DOM 或者 XML 會佔用多的內存)。能夠直接在瀏覽器中打開且正確顯示模板頁面。直接是 html 結尾,能夠直接編輯。session
2.Spring Boot 整合模板引擎 freemarkerapp
步驟1:引入 Freemarker 相關 maven 依賴dom
<!-- 引入freemarker模板引擎的依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
步驟2:Freemarker 基礎配置
# 是否開啓thymeleaf緩存,本地爲false,生產建議爲true
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.allow-request-override=false
spring.freemarker.check-template-location=true
#類型
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
#文件後綴
spring.freemarker.suffix=.ftl
#路徑
spring.freemarker.template-loader-path=classpath:/templates/
步驟3:新建 .ftl 文件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1> ${setting.name} </h1> <h1> ${setting.domain} </h1> </body> </html>
步驟4:簡單測試代碼編寫和訪問
@Controller @RequestMapping("/freemaker") public class FreemakerController { @Autowired private ServerSettings setting; @GetMapping("hello") public String index(ModelMap modelMap){ modelMap.addAttribute("setting", setting); return "fm/index"; //不用加後綴,在配置文件裏面已經指定了後綴 } }
3.Spring Boot 整合模板引擎 thymeleaf
官網地址:https://www.thymeleaf.org/doc/articles/thymeleaf3migration.html
步驟1:引入 thymeleaf 相關 maven 依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
步驟2:thymeleaf 基礎配置
#開發時關閉緩存,否則無法看到實時頁面
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML5
#前綴
spring.thymeleaf.prefix=classpath:/templates/
#編碼
spring.thymeleaf.encoding=UTF-8
#類型
spring.thymeleaf.content-type=text/html
#名稱的後綴
spring.thymeleaf.suffix=.html
步驟3:新建 .html 文件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 模板引擎整合thymeleaf admin/info.html <h1 >測試內容,未加th表達式</h1> <h1 th:text="${setting.name}">測試內容</h1> </body> </html>
步驟4:簡單測試代碼編寫和訪問
@Controller @RequestMapping("/tyhmeleaf") public class ThymeleafController { @Autowired private ServerSettings setting; @GetMapping("hello") public String index(){ return "index"; //不用加後綴,在配置文件裏面已經指定了後綴 } @GetMapping("info") public String admin(ModelMap modelMap){ modelMap.addAttribute("setting", setting); return "admin/info"; //不用加後綴,在配置文件裏面已經指定了後綴 } }
注意:$表達式只能寫在th標籤內部
快速入門:https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html