Thymeleaf 是新一代Java模板引擎,类似于FreeMarker等传统Java模板引擎,与传统引擎不同的是,Thymeleaf支持HTML原型,即可以让前端工程师在浏览器中直接打开查看样式,也可以让后端工程师结合真实数据查看显示效果。

1 、创建springboot工程

2 、添加依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  4. </dependency>

3 、配置Thymeleaf

application.properties 中配置

  1. #是否开启缓存,开发时可设置为false,默认为true
  2. spring.thymeleaf.cache=false
  3. #是否检查模板是否存在,默认为true
  4. spring.thymeleaf.check-template=true
  5. #是否检查模板位置是否存在,默认为true
  6. spring.thymeleaf.check-template-location=true
  7. #模板文件编码
  8. spring.thymeleaf.encoding=UTF-8
  9. #模板文件位置
  10. spring.thymeleaf.prefix=classpath:/templates/
  11. #Content-Type配置
  12. spring.thymeleaf.servlet.content-type=text/html
  13. #模板文件后缀
  14. spring.thymeleaf.suffix=.html

4、创建实体类、控制器

实体类参考:

  1. public class Book {
  2. private Integer id;
  3. private String name;
  4. private String author;
  5. // getter/setter 自行生成
  6. }

控制类参考:

  1. @Controller
  2. public class BookController {
  3. @GetMapping("/books")
  4. public ModelAndView books() {
  5. List<Book> books = new ArrayList<>();
  6. Book b1 = new Book();
  7. b1.setId(1);
  8. b1.setAuthor("罗贯中");
  9. b1.setName("三国演义");
  10. Book b2 = new Book();
  11. b2.setId(2);
  12. b2.setAuthor("曹雪芹");
  13. b2.setName("红楼梦");
  14. books.add(b1);
  15. books.add(b2);
  16. ModelAndView mv = new ModelAndView();
  17. mv.addObject("books", books);
  18. mv.setViewName("books");
  19. return mv;
  20. }
  21. }

5 、创建视图

templates/books.html

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>图书列表</title>
  6. </head>
  7. <body>
  8. <table border="1">
  9. <tr>
  10. <td>图书编号</td>
  11. <td>图书名称</td>
  12. <td>图书作者</td>
  13. </tr>
  14. <tr th:each="book:${books}">
  15. <td th:text="${book.id}"></td>
  16. <td th:text="${book.name}"></td>
  17. <td th:text="${book.author}"></td>
  18. </tr>
  19. </table>
  20. </body>

6 、运行

image.png