Thymeleaf 简介:
简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP
优点:
1.静态html嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。
2.springboot官方推荐方案。
简单的 Thymeleaf 应用:
1. 相关pom依赖(新建项目时勾选上)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot官方文档建议在开发时将缓存关闭,那就在application.properties文件中加入下面这行
spring.thymeleaf.cache=false
正式环境还是要将缓存开启的
2.然后增加头文件(如下)
<!DOCTYPE html> <html lang="en"> <html xmlns:th="http://www.thymeleaf.org">
3.就可以用th标签动态替换掉静态数据了
<h1 th:text="${title}"></h1>
4.主要代码(后台,前台)
后台代码:
package com.spring.springboot02.entiry;
/**
* @author cst
* @site www.xiaomage.com
* @company xxx公司
* @create 2019-02-17 16:13
*/
public class User {
private String userid;
private String uname;
private String ubak;
public User() {
}
public User(String userid, String uname, String ubak) {
this.userid = userid;
this.uname = uname;
this.ubak = ubak;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUbak() {
return ubak;
}
public void setUbak(String ubak) {
this.ubak = ubak;
}
}
package com.spring.springboot02.controller;
import com.spring.springboot02.entiry.Role;
import com.spring.springboot02.entiry.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 cst
* @site www.xiaomage.com
* @company xxx公司
* @create 2019-02-17 16:00
*/
@Controller
public class IndexController {
@RequestMapping("/user/list")
public ModelAndView list(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("user/list");
modelAndView.addObject("title","用户列表");
List list = new ArrayList();
list.add(new User("1","大傻子","傻不拉几"));
list.add(new User("2","嘤嘤怪","嘤嘤嘤"));
modelAndView.addObject("users",list);
return modelAndView;
}
}
前台代码:
<!DOCTYPE html>
<html lang="en">
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
欢迎访问
<h1 th:text="${title}"></h1>
<table>
<thead>
<tr>
<td>用户编号</td>
<td>用户姓名</td>
<td>用户简介</td>
</tr>
</thead>
<tbody>
<tr th:each="user : ${users}">
<td th:text="${user.userid}"></td>
<td th:text="${user.uname}"></td>
<td th:text="${user.ubak}"></td>
</tr>
</tbody>
</table>
<select>
<option th:each="user:${users}" th:value="${user.userid}" th:text="${user.uname}"></option>
</select>
</body>
</html>
项目结构和运行结果: