文章目录
- 1. java体系模板引擎介绍
- 2. 使用
- 2.1 初步使用
- 2.2. 引用静态资源模板
- 2.3 引用静态资源模板(配置资源路径和后缀)
- 2.4 整合springboot
视频地址
1. java体系模板引擎介绍
- FreeMarker
- Thymeleaf
- Velocity
2. 使用
2.1 初步使用
- 引入依赖
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>
- 初步使用
@Test
public void fun01() {
//创建模板引擎
TemplateEngine templateEngine = new TemplateEngine();
//准备模板
String input = "<input type='text' th:value='hellothymeleaf'/>";
//准备数据,使用context
Context context = new Context();
//调用模板引擎,处理模板和数据
String out = templateEngine.process(input, context);
System.out.println("结果数据:" + out);
}
@Test
public void fun02() {
//创建模板引擎
TemplateEngine templateEngine = new TemplateEngine();
//准备模板
String input = "<input type='text' th:value='${name}'/>";
//准备数据,使用context
Context context = new Context();
context.setVariable("name","张三");
//调用模板引擎,处理模板和数据
String out = templateEngine.process(input, context);
System.out.println("结果数据:" + out);
}
2.2. 引用静态资源模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type='text' th:value='${name}'/>
</body>
</html>
@Test
//使用静态资源模板
public void fun03() {
//创建模板引擎
TemplateEngine templateEngine = new TemplateEngine();
//读取磁盘中的模板文件
ClassLoaderTemplateResolver classLoaderTemplateResolver = new ClassLoaderTemplateResolver();
//设置引擎使用resolver
templateEngine.setTemplateResolver(classLoaderTemplateResolver);
//准备数据,使用context
Context context = new Context();
context.setVariable("name", "张三");
//调用模板引擎,处理模板和数据(处理的文件)
String out = templateEngine.process("main.html", context);
System.out.println("结果数据:" + out);
}
2.3 引用静态资源模板(配置资源路径和后缀)
@Test
//使用静态资源模板-配置路径前缀和后缀
public void fun04() {
//创建模板引擎
TemplateEngine templateEngine = new TemplateEngine();
//读取磁盘中的模板文件
ClassLoaderTemplateResolver classLoaderTemplateResolver = new ClassLoaderTemplateResolver();
classLoaderTemplateResolver.setPrefix("templates/");//设置路径前缀
classLoaderTemplateResolver.setSuffix(".html");//设置资源后缀
//设置引擎使用resolver
templateEngine.setTemplateResolver(classLoaderTemplateResolver);
//准备数据,使用context
Context context = new Context();
context.setVariable("name", "张三");
//调用模板引擎,处理模板和数据(处理的文件)
String out = templateEngine.process("index", context);
System.out.println("结果数据:" + out);
}
2.4 整合springboot
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- 配置
spring:
thymeleaf:
cache: false
mode: HTML
prefix: classpath:/templates/
suffix: .html
配置项以及其他配置项说明
#spring.thymeleaf.cache = true #启用模板缓存。
#spring.thymeleaf.check-template = true #在呈现模板之前检查模板是否存在。
#spring.thymeleaf.check-template-location = true #检查模板位置是否存在。
#spring.thymeleaf.content-type = text / html #Content-Type值。
#spring.thymeleaf.enabled = true #启用MVC Thymeleaf视图分辨率。
#spring.thymeleaf.encoding = UTF-8 #模板编码。
#spring.thymeleaf.excluded-view-names = #应该从解决方案中排除的视图名称的逗号分隔列表。
#spring.thymeleaf.mode = HTML5 #应用于模板的模板模式。另请参见StandardTemplateModeHandlers。
#spring.thymeleaf.prefix = classpath:/ templates / #在构建URL时预先查看名称的前缀。
#spring.thymeleaf.suffix = .html #构建URL时附加到查看名称的后缀。"前缀+模板名称+后缀"即可定位到具体的模板
#spring.thymeleaf.template-resolver-order = #链中模板解析器的顺序。
#spring.thymeleaf.view-names = #可以解析的视图名称的逗号分隔列表。/ templates / #在构建URL时先查看名称的前缀。
#spring.thymeleaf.suffix = .html #构建URL时附加到查看名称的后缀。
#spring.thymeleaf.template-resolver-order = #链中模板解析器的顺序。
#spring.thymeleaf.view-names = #可以解析的视图名称的逗号分隔列表。/ templates / #在构建URL时先查看名称的前缀。
#spring.thymeleaf.suffix = .html #构建URL时附加到查看名称的后缀。
#spring.thymeleaf.template-resolver-order = #链中模板解析器的顺序。
#spring.thymeleaf.view-names = #可以解析的视图名称的逗号分隔列表。
- controller
/**
* @param model : 可以存放数据,存入到request域
* @return string: 表示视图,实际会执行forward转发
*/
@RequestMapping("/hello")
public String hello(Model model, HttpServletRequest httpServletRequest) {
//添加数据
// model.addAttribute("name","张思");
httpServletRequest.setAttribute("name", "张思");
//指定模板视图
return "index.html";
}