SpringBoot整合Freemarker
什么是FreeMarker?
官方解说:
Apache FreeMarke是一个模板引擎:一个Java库,用于根据模板和更改的数据生成文本输出(HTML网页,电子邮件,配置文件,源代码等)。通常,使用通用编程语言(如Java)来准备数据(发出数据库查询,进行业务计算)。然后,Apache FreeMarker使用模板显示准备好的数据。
在模板中,您专注于如何显示数据,在模板之外,您专注于呈现什么数据。
现在前后端分离也少不了一些模板引擎的支撑。比如:Freemarker、Thymeleaf等等。
先提前说一下这篇博客的内容:
使用SpringBoot整合Freemarker,通过Java后端生成数据结合Freemarker模板页面在浏览器输出一些内容。
创建SpringBoot项目
可以参考下面的博客来创建SpringBoot项目
SpringBoot快速入门
引入Freemarker依赖
在创建完SpringBoot项目后,在pom.xml中引入freemarker依赖。
<!-- 引入freeMarker的依赖包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
这里不用指定freemarker依赖的版本,因为SpringBoot项目默认都会继承一个父工程,
在这个父工程中已经指定了常用第三方组件依赖的版本了,当然也包括了freemarker。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/>
</parent>
创建Freemarker模板文件
接下来我们在src/main/resources/templates目录下,新建一个后缀为*.ftl的文件。
myFreemarker.ftl文件内容如下:
创建FreemarkerController
@Controller
public class FreemarkerController {
@RequestMapping("/freemarker")
public String freemarker(){
return "myFreemarker";
}
}
再在application.properties中配置如下内容:
最后在浏览器输入:http://localhost:8080/freemarker
,即可输出模板页面的内容。
这个只是简单的模板页面内容输出,还没结合Java后台生成的数据,接下来就测试在Freemarker模板页面渲染模型数据。
在FreemarkerController再添加一个控制方法:
@RequestMapping("/jAndFreemarker")
public String jAndFreemarker(Map<String,Object> result){
result.put("name","xq");
result.put("age","22");
return "myFreemarker";
}
修改myFreemarker.ftl
在浏览器输入如下地址:http://localhost:8080/jAndFreemarker
好了,SpringBoot简单整合Freemarker就完成了。
源码可以前往这个GitHub地址
https://github.com/zwq19980122/SpringBoot