1、SpringBoot支持的模板引擎html
一、Thymeleaf(官方推薦)java
二、FreeMarkerweb
三、Groovyspring
四、mustache後端
SpringBoot爲何不推薦使用JSP呢?緩存
一、JSP對頁面的侵入性較強。app
二、web容器版本的的管理問題。spring-boot
2、關於thymeleaf測試
作到了先後端的完美分離ui
3、實現MVC
不一樣的包存放的文件以下圖所示:
一、引入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
二、編寫controller
/* * Copyright (c) 2018 solidwang. All Rights Reserved */ package com.solid4j.controller; import com.solid4j.bean.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.ArrayList; import java.util.List; /** * @author: solidwang * @date:2018/4/19 上午10:35 */ @Controller @RequestMapping("/thymeleaf") public class ThymeleafController { @RequestMapping("") public ModelAndView index(){ List<User> userList = new ArrayList<User>(); User user1 = new User("solidwang", "solidwang@126.com"); User user2 = new User("jobs", "jobs@me.com"); userList.add(user1); userList.add(user2); ModelAndView modelAndView = new ModelAndView("/index"); modelAndView.addObject("userList", userList); return modelAndView; } }
三、模板文件(index.html)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>learn Resources</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <div> <h1>Thymeleaf測試</h1> <table border="1" cellspacing="1" cellpadding="0"> <tr> <td>姓名</td> <td>passport</td> </tr> <tr th:each="user : ${userList}"> <td th:text="${user.username}">solidwang</td> <td th:text="${user.passport}">solidwang@me.com</td> </tr> </table> </div> </body> </html>
四、測試結果以下:
五、注意事項
若是要模板頁面實時刷新,須要配置application.properties文件,spring.thymeleaf.cache=false,若是依然沒有生效,能夠對html文件進行一次編譯便可。
#thymeleaf start spring.thymeleaf.mode=HTML5 spring.thymeleaf.encoding=UTF-8 #開發時關閉緩存,否則無法看到實時頁面 spring.thymeleaf.cache=false #thymeleaf end