https://www.bilibili.com/video/BV1gW411W76m?p=1
1.模板引擎
JSP,Velocoty,Freemaker,Thymeleaf(springboot推荐)
spring boot推荐的Thymeleaf
语法简单。功能强大
1.引入模板引擎
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
切换版本
<properties>
<java.version>1.8</java.version>
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
<!--布局功能的支持程序 thymeleaf3主程序 layout2以上版本 Thymeleaf2 对应 layout1-->
<thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
</properties>
2.thymeleaf使用&语法
@ConfigurationProperties(
prefix = "spring.thymeleaf"
)
public class ThymeleafProperties {
private static final Charset DEFAULT_ENCODING;
public static final String DEFAULT_PREFIX = "classpath:/templates/";
public static final String DEFAULT_SUFFIX = ".html";
private boolean checkTemplate = true;
private boolean checkTemplateLocation = true;
private String prefix = "classpath:/templates/";
private String suffix = ".html";
private String mode = "HTML";
private Charset encoding;
private boolean cache;
private Integer templateResolverOrder;
private String[] viewNames;
private String[] excludedViewNames;
private boolean enableSpringElCompiler;
private boolean renderHiddenMarkersBeforeCheckboxes;
private boolean enabled;
private final ThymeleafProperties.Servlet servlet;
private final ThymeleafProperties.Reactive reactive;
//只要把html页面放在classpath:/templates/里springboot就可以自动渲染
@Controller
public class HelloController {
@ResponseBody//访问的是数据,无此标签访问的页面
@RequestMapping("/hello")
public String hello(){
return "Hello";
}
@RequestMapping("success")
public String success(){
return "success";
}
}
Thymeleaf使用
1)导入thymeleaf名称空间,有语法提示 ,不导入无语法提示
xmlns:th="http://www.thymeleaf.org"
2).使用thymeleaf语法
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>okk</div>
<!--th:text 将div里面的文本内容设置为我们指定的值-->
<div th:text="${Hello}">123</div>
</body>
</html>
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello";
}
@RequestMapping("/success")
public String success(Map<String,Object> map) {
map.put("Hello","ni4546hao");
return "success";
}
}
3.语法规则
1)th:text 改变当前元素里面的文本内容
th:任意html属性 来替换原生属性的值