每一秒钟的时间都值得铭记

0%

SpringBoot+Freemarker基础入门

上一次我们讲了Thymeleaf静态模板引擎,今天我们来讲另一款Java静态模板引擎技术FreeMarker。

什么是FreeMarker?

FreeMarker是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据,而在模板之外注意于要展示什么数据。

项目结构

在这里插入图片描述

搭建项目环境

我们创建一个Maven项目,并在pom.xml文件中引入相关依赖。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>

<dependencies>
<!--SpringMVC的启动器依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringBoot整合FreeMarker模板引擎的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--Lombox依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>

SpringBoot项目启动类

1
2
3
4
5
6
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class);
}
}

application.yml配置文件

1
2
3
4
5
6
7
spring:
freemarker:
charset: UTF-8
# 如果不配置模板文件后缀,默认是.ftl文件
# suffix: ".html"
# 默认就是在templates目录下,是一个数组对象,可以配置多个
# template-loader-path: "classpath:/templates/"

User类

1
2
3
4
5
6
7
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String username;
private String password;
}

UseController类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Controller
public class UserController {

@RequestMapping("/user")
public String findUser(Model model) {
List<User> users = new ArrayList<>();
users.add(new User("张三","123"));
users.add(new User("李四","123"));

model.addAttribute("users", users);
model.addAttribute("hello","hello world");
model.addAttribute("now",new Date());
model.addAttribute("num",100);

return "index";
}
}

index.ftl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>FreeMarker入门</title>
</head>
<body>
<h1>${hello}</h1>
<h1>${now?date}</h1>
<table>
<tr>
<td>姓名</td>
<td>密码</td>
</tr>
<#list users as user>
<tr>
<td>${user.username}</td>
<td>${user.password}</td>
</tr>
</#list>
</table>

<#if num == 100>
num的值是100
<#else>
num的值不是100
</#if>
</body>
</html>

测试效果

启动项目,我们访问http://localhost:8080/user路径,得到结果:

在这里插入图片描述

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------