Thymeleaf模板注釋分為標准HTML/XML注釋、解析層注釋、原型注釋三種。
一、注釋說明
1、標准HTML/XML注釋
直接通過瀏覽器打開,不顯示,Thymeleaf模板引擎解析也不處理,但查看網頁源代碼,注釋有在里面。
語法:
<!-- 內容 -->
瀏覽器界面不顯示,查看瀏覽器網頁源碼有顯示;
2、解析層注釋
直接通過瀏覽器打開,會顯示。但Thymeleaf模板引擎解析時會移除注釋標簽和里面內容。
一般開發人員使用,減少對原型頁面的破壞。
語法:
<!--/*--> 內容 <!--*/-->
3、原型注釋
直接通過瀏覽器打開,不顯示。但Thymeleaf模板引擎解析時只移除注釋標簽,不會移除里面內容,最后會正常輸出。
一般界面設計人員使用。
語法:
<!--/*/ 內容 /*/-->
二、使用實例
開發環境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
新建一個名稱為demo的Spring Boot項目。
1、pom.xml
加入Thymeleaf依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2、src/main/java/com/example/demo/User.java
package com.example.demo; public class User { Integer id; String name; public User(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、src/main/java/com/example/demo/TestController.java
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList; import java.util.List; @Controller public class TestController { @RequestMapping("/") public String test(Model model){ List<User> users = queryUsers(); model.addAttribute("users", users); return "test"; } private List<User> queryUsers(){ List<User> users = new ArrayList<User>(); users.add(new User(1,"張三")); users.add(new User(2,"李四")); users.add(new User(3,"王五")); return users; } }
4、src/main/resources/templates/test.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> table { border-collapse:collapse;} td { border: 1px solid #C1DAD7;} </style> </head> <body> <!--<div>標准HTML/XML注釋</div>--> <!--解析層注釋--> <table> <tr th:each="user : ${users}"> <td th:text="${user.id}">11</td> <td th:text="${user.name}">小明</td> </tr> <!--/*--> <tr> <td>22</td> <td>小紅</td> </tr> <!--*/--> </table> <!--/*/ <div>原型注釋</div> /*/--> </body> </html>
IDEA運行后,瀏覽器訪問:http://localhost:8080,界面顯示如下
查看網頁源代碼,如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> table { border-collapse:collapse;} td { border: 1px solid #C1DAD7;} </style> </head> <body> <!--<div>標准HTML/XML注釋</div>--> <!--解析層注釋--> <table> <tr> <td>1</td> <td>張三</td> </tr> <tr> <td>2</td> <td>李四</td> </tr> <tr> <td>3</td> <td>王五</td> </tr> </table> <div>原型注釋</div> </body> </html>
如果直接在瀏覽器中打開test.html,界面顯示如下:
查看網頁源代碼,如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> table { border-collapse:collapse;} td { border: 1px solid #C1DAD7;} </style> </head> <body> <!--<div>標准HTML/XML注釋</div>--> <!--解析層注釋--> <table> <tr th:each="user : ${users}"> <td th:text="${user.id}">11</td> <td th:text="${user.name}">小明</td> </tr> <!--/*--> <tr> <td>22</td> <td>小紅</td> </tr> <!--*/--> </table> <!--/*/ <div>原型注釋</div> /*/--> </body> </html>