Day20-SpringBoot整合FreeMarker

💖Day20-SpringBoot整合FreeMarker💖

FreeMarker是一个非常古老,可以用在 Web 环境或者非 Web 环境中。
与 Thymeleaf不同,FreeMarker 需要经过解析才能够在浏览器中展示出来。
FreeMarker 不仅可以用来配置HTML页面模板,也可以作为电子邮件模板、配置文件模板以及源码模板等。
Spring Boot 中对 FreeMarker整合也提供了很好的支持,主要整合步骤如下:

🚀1、创建项目,添加依赖

🛬首先创建SpringBoot项目,然后添加spring-boot-starter-web和spring-boot-starter-freemarker依赖,代码如下

<dependency>
	<groupId›org.springframework.boot</groupId>
	<artifactId›spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
	<groupId›org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

🚀2、配置FreeMark

🛬SpringBoot对FreeMarker也提供了自动化配置类FreeMarkerAutoConfiguration,相关的配置属性在FreeMarkerProperties中,FreeMarkerProperties部分源码如下:

@ConfigurationProperties (prefix = "spring.freemarker")
public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties{
          
   
public static final String DEFAULT TEMPLATE LOADER PATH = "classpath:/templates/".
public static final String DEFAULT PREFIX = "";
public static final String DEFAULT SUFFIX = ".ftl";
}

🛬从该默认配置中可以看到,FreeMarker 默认模板位 置 和 Thymeleaf 一样,都在classpath:/templates/中,默认文件后缀是.ftl。开发者可以 在 application.properties 中对这些默认配置进行修改,部分常见配置如下:

#HttpServletRequest 的属性是否可以覆盖 controller 中mode1 的同名项
spring . freemarker .allow- request-override=false
#Httpsession 的属性是否可以覆盖 controller 中model 的同名项
spring . freemarker.allow-session-override=false
#是否开启缓存
spring.freemarker.cache=false
#模板文件编码
spring.freemarker.charset=UTF-8
#是否检查模板位置
spring. freemarker.check-template-location=true
#Content-Type #jH
spring. freemarker.content-type-text/html
#是否将 HttpservletRequest 中的属性添加到 Mode1 中
spring.freemarker.expose-request-attributes=-false
#是否将 Httpsession 中的属性添加到 Model 中
spring . freemarker.expose-session-attributes=false
#模板文件后缀
spring.freemarker.suffix=.ftl
#模板文件位置
spring. freemarker.template-loader-path=classpath:/templates/

🚀3、配置控制器

🛬控制器和 Thymeleaf中的控制器一样,详细看上一集。

🚀4、创建视图

🛬按照配置文件,在resources/templates 目录下创建 books.ftl文件,内容如下:

代码解释:

    第14 行首先判断model 中的books 不为空并且books 中有数据,然后进行遍历。 第 15~21 行表示遍历books 集合,将集合中的数据通过表格展示出来。

🚀5、运行

经验分享 程序员 微信小程序 职场和发展