Freemarker 简介
这是一个相当老牌的开源的免费的模版引擎。通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。
Freemarker 模版后缀为 .ftl(FreeMarker Template Language)。FTL 是一种简单的、专用的语言,它不是像 Java 那样成熟的编程语言。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。
这里先把代码显示咯,再做分析解释
就不从新建项目讲起来了,这样废话就太多了,就是记得加上SpringBoot官方给的Freemarker的依赖。
结构
依赖
新建时,没加也问题不大,我们自己在pom.xml中手动加上就好
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
UserController
/**
* @author ZSL
* @ClassName UserController
* @description
* @date 2019/8/6
*/
@Controller
public class UserController {
@GetMapping("/user")
public String getUser( Model model){
User user = new User();
user.setId("zid");
user.setName("zsl");
user.setAge(18);
model.addAttribute("user",user);
return "index";
}
}
在resources目录下的templates文件夹下新建.ftl的FreeMarker文件
这里你直接新建是没有.ftl文件的,你可以通过html文件改后缀也可以直接新定义新建.ftl文件的选项,.ftl和html文件差不多。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</body>
</html>
相信上面的代码不用注释你能看得懂,都是基础代码。
那么我们来分析一下,我们知道Starter中知道了有个自动装配类xxxAutoConfiguration
的,那么我们来看看在FreeMarker中的自动装配类。
我们从头慢慢来分析
启动类
@SpringBootApplica