一、什么是thymeleaf模板引擎
模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。 它可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式,可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。
二、什么是thymeleaf模板引擎
java"><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.22</version>
</dependency>
三、配置Thymeleaf
java">spring:thymeleaf:cache: false # 关闭页面缓存encoding: UTF-8 # 模板编码prefix: classpath:/templates/ # 页面映射路径suffix: .html # 试图后的后缀mode: HTML5 # 模板模式
四、访问页面
controller层
java">import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class IndexController {@RequestMapping("/")public String index(){return "index";}}
五、访问静态资源
在配置文件当中配置 .yml
java">spring:mvc:static-path-pattern: /static/**
目录格式
引用格式
java"><link rel="stylesheet" href="../static/css/mystyle.css"/>
我们在进行正常访问的时候会报一下的错误,这是因为我们需要给网页标题前添加一个小图标favicon.ico
我们需要加上这一句话在页面上
java"><link rel="shortcut icon" href="../resources/favicon.ico" th:href="@{/static/favicon.ico}"/>
六、thymeleaf使用模板
在java代码中写入如下代码:
java">@RequestMapping("/hello")
public String hello(Model model){model.addAttribute("msg","Hello");return "hello";
}
html页面中写入如下代码:
java"><!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<body>
<h1>Hello</h1>
<div th:text="${msg}"></div>
</body>
</html>
七、thymeleaf实例演示
①、th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7
②、th:value:设置当前元素的value值,类似修改指定属性的还有th:src,th:href。优先级不高:order=6
java">@RequestMapping("thymeleaf")
public String thymeleaf(ModelMap map){map.put("thText","th:text设置文本内容 <b>加粗</b>");map.put("thUText","th:utext 设置文本内容 <b>加粗</b>");map.put("thValue","thValue 设置当前元素的value值");return "thymeleaf";
}
java"><p th:text="${thText}"></p>
<p th:utext="${thUText}"></p>
<input type="text" th:value="${thValue}">
③、th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,详细往后看。优先级很高:order=2
java">@RequestMapping("/thymeleaf")
public String listUser(Model model) {List<Person> userList = new ArrayList<Person>();for (int i = 0; i <10; i++) {userList.add(new Person(i,"张三"+i,20+i,'男'));}model.addAttribute("users", userList);return "thymeleaf";
}
java"><div><ul><li th:each="user:${users}"><span th:text="${user.id}"></span>-<span th:text="${user.name}"></span>-<span th:text="${user.age}"></span>-<span th:text="${user.sex}"></span></li></ul>
</div>
④、th:if:条件判断,类似的还有th:unless,th:switch,th:case。优先级较高:order=3
判断表达式:
java">gt:great than(大于)>
ge:great equal(大于等于)>=
eq:equal(等于)==
lt:less than(小于)<
le:less equal(小于等于)<=
ne:not equal(不等于)!=
java"><div th:if=" ${userCarSize} eq '3'"><div>你好</div>
</div>
java">@RequestMapping("/thymeleaf")
public String listUser(Model model) {model.addAttribute("size", 3);return "thymeleaf";
}