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

- freemarker模板中不能使用java代码,有利于严格的mvc分离
- 性能比较好
- 内置了丰富的功能,使用方便
- 可以在servlet容器外使用,模板不会被编译成class,不占用PermGen空间(从jdk8开始使用元空间)
- 宏定义,方便功能的封装
1.导入free marker相关的包
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-freemarkerartifactId>
- dependency>
2. 导入相关配置application.properties
- # ------------------------freemarker B --------------------------
- # 是否允许HttpServletRequest属性覆盖(隐藏)控制器生成的同名模型属性。
- spring.freemarker.allow-request-override=false
- # 是否允许HttpSession属性覆盖(隐藏)控制器生成的同名模型属性。
- spring.freemarker.allow-session-override=false
- # 是否启用模板缓存。
- spring.freemarker.cache=false
- # 模板编码。
- spring.freemarker.charset=UTF-8
- # 是否检查模板位置是否存在。
- spring.freemarker.check-template-location=true
- # Content-Type value.
- spring.freemarker.content-type=text/html
- # 是否启用freemarker
- spring.freemarker.enabled=true
- # 设定所有request的属性在merge到模板的时候,是否要都添加到model中.
- spring.freemarker.expose-request-attributes=false
- # 是否在merge模板的时候,将HttpSession属性都添加到model中
- spring.freemarker.expose-session-attributes=false
- # 设定是否以springMacroRequestContext的形式暴露RequestContext给Spring’s macro library使用
- spring.freemarker.expose-spring-macro-helpers=true
- # 是否优先从文件系统加载template,以支持热加载,默认为true
- spring.freemarker.prefer-file-system-access=true
- # 设定模板的后缀.
- spring.freemarker.suffix=.ftl
- # 设定模板的加载路径,多个以逗号分隔,默认:
- spring.freemarker.template-loader-path=classpath:/templates/
- # 设定FreeMarker keys.
- spring.freemarker.settings.template_update_delay=0