SpringBoot(十七) FreeMarker模板引擎 - 快速入门

Freemaker 性能比Thymeleaf3.0 高很多。 FreeMarker 默认后缀 .ftl

简介

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

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

官方文档

构建项目

添加FreeMarker依赖

修改配置文件

如果同时使用 ThymeleafFreeMarker ,最好别再同一个目录下,避免混淆。

1
2
3
4
5
6
7
## FreeMarker 配置
spring:
freemarker:
# 关闭缓存
cache: false
# 默认路径 classpath:/templates/
template-loader-path: classpath:/templates/ftl/

示例

创建模板

位置: /templates/ftl/hello.ftl

1
2
3
4
5
6
7
<!DOCTYPE html>
<html lang="en">
<body>
<#-- FreeMarker将会输出真实的值来替换大括号内的表达式 -->
<h1>Hello ${name}</h1>
</body>
</html>

当访问这个页面, FreeMarker将会介入执行,然后动态转换模板,用设定好的数据内容替换模板中 ${...} 的部分, 之后将结果发送到访问者的Web浏览器中。

控制层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @author Ray
* @date 2018/8/3 0003
*/
@Controller
public class HelloController {

@GetMapping("/hello")
public String hello(Model model){
// 添加内容
model.addAttribute("name", "FreeMarker");
return "hello";
}
}

效果

总结

总的来说,模板和数据模型是FreeMarker来生成输出(比如第一个展示的HTML)所必须的:
模板 + 数据模型 = 输出

-------------- 本文结束  感谢您的阅读 --------------