开发者学堂课程【SpringBoot 实战教程: SpringBoot 整合 Freemarker】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10795
SpringBoot 整合 Freemarker
1、<!-- springboot 不建议使用 jsp,使用模板引擎,比如 themleaf, velocity, freemarker 整合 freemarker -- >
2、如何使用 freemarker?
首先需要依赖 freemarker 的 jar 包,这是 springboot 提供给 freemarker 相关的依赖。需要遵循 starter- freemarker 规范,把依赖加入到工程中。
<dependency>
<groupId>org. springframework. boot</ groupId>
<artifactId>spring-boot-starter- freemarker</ artifactId>
</ dependency>
3、事先创建好工程,web 包已经依赖,它都是基于模版的,freemarker 使用的模版,扩展名通常是ftl,springboot 默认 resources 下 templates 找模版,所以需要创建一个 templates 的文件夹。模版放在它下面,springboot 自己可以找到。
4、创建一个模版,命名为 show.ftl。扩展名不一定必须是 ftl。
5、模版就是最终要显示的页面,它本身是支持 html 和 jsp,都可以正常使用,写一个简单的页面,页面上有静态数据和动态数据,从数据库中查询出要显示的数据属于动态数据,在 freemarker 模版中,类似于 jsp,el 表达式取值,比如取 name 的值,$大括号的方式,属于 freemarker 的语法,模版写好后,构造名字是 name 的数据。
<html>
<head>
< /head>
<body>
$ {name }
</body>
< /html >
6、通过 controller 生成这个数据,在 controller 中写一个方法,比如 show,访问路径 page,在 model 中添加数据,最后要显示在模版上,模版 show
@Controller
public class IndexController {
@RequestMapping ("/page")
public String show (Model model )
{
model . addAttribute ("name", "
千锋教育
") ;
Return show" ;
}
7、启动程序已经写好,把数据放在 model 中,转到模版上,模版取到 name 所在的值显示在模版页面上,启动,访问路径是 page,取到数据。说明 springboot 默认去 resources 下 templates 找后缀是 ftl 的。
8、如果没有放在 templates 下,或者后缀不是 ftl,就需要做相应的全局配置,和freemarker相关的全局配置,有以下这些,如果采取默认配置,全局配置是不需要写的。
#springboot
整合 freemarker
spring. freemarker . allow-request-override=false
spring. freemarker . cache=true
需不需要缓存
spring. freemarker . check-template- location=true
spring. freemarker. charset=UTF-8
spring. freemarker . content -type=text/html
freemarker 模版格式,html 的文本格式
spring. freemarker . expose- request-attributes=false
请求
spring. freemarker. expose- session-attributes=false
spring. freemarker . expose- spring-macro-helpers=false
spring. freemarker.suffix=. ftl
指定模版所存放位置
spring.freemarker.template-loader-path=classpath:/
templates
这就是 springboot 中整合 freemarke 的方式。