准备工作
首先需要在工程中,增加Thymeleaf的Maven依赖。
其中第一个依赖就是thymeleaf引擎了,而第二个依赖,是对不严谨的HTML代码进行忽略的依赖,不加的话,如果有HTML标签没有结束的话,会出现异常。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
然后需要在源码的resources目录下,创建templates文件夹,所有的以后Thymeleaf模板文件都在这里进行创建。
第一个模板
实际上,如果不加任何标签,和html5几乎没有区别。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello Thymeleaf</title>
</head>
<body>
Hello world!
</body>
</html>
模板创建好后,我们可以在SpringMVC中像使用JSP那样的使用Thymeleaf,一样的返回路径,一样的给ModelMap进行赋值。 加如我们的模板名称为index.html,并且在templates/app/目录下,那么Controller中可以这样定义页面的映射:
@RequestMapping("/index")
public String edit(ModelMap map){
map.put("sayAnything", "说点啥呗~"));
return "app/index";
}
常用标签
由于Web开发有大量的异步请求,所以开发人员日常工作中基本用不到那么多的标签,这里整理了一些Thymeleaf的常用标签:
说明 | 用例 | 运行结果 |
---|---|---|
文本赋值 | <div th:text="${user.userName}" ></div> | <div>用户名</div> |
属性赋值 | <input th:value="${user.userName}"/> | <input value="用户名"/> |
文本拼接 | <div th:text="|你好啊,${user.userName}!!!|" ></div> | <div>你好啊,用户名</div> |
条件判断 | <a th:if="${user!=null}" >详情</a> | 不为空时显示文本 |
循环List | <li th:each="collect,i :${list}" th:text="|${i.index+1}.${collect.name}|"></li> | ... |
日期格式化 | <input th:value="${#dates.format(date, 'yyyy-MM-dd')}" /> | <input value="2017-12-17" /> |
URL表达式 | <a th:href="@{/main}">主页</a> | <a href="/main">主页</a> |
作者: Zealon
崇尚简单,一切简单自然的事物都是美好的。