基于 Spring Boot 的 SSM 环境整合八:使用freemarker模板引擎
前文整合了thymeleaf 模板引擎,在使用中确实不太方便,于是研究了freemarker模板引擎,以下将两者做个简介的比对:
1、thymeleaf是springboot官方推荐的模板引擎,而freemarker不是。
2、thymeleaf要求模板必须符合xml规范,使用起来非常不方便。freemarker则自由很多。
3、thymeleaf模板文件实际上是静态html嵌入了标签属性,使用浏览器可以直接打开模板文件,便于前后端分离式开发和联调。
简介的说,如果项目较大,前、后台分离式开发且比较规范,建议使用thymeleaf,否则使用freemarker更为方便。
1、修改pom.xml
注释原 thymeleaf引用,添加freemarker引用:
<!-- thymeleaf 模板
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency> -->
<!-- freemarker 模板 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
记得执行Maven clear和Maven install。
2、修改springboot 配置文件
修改application.properties文件,注释thymeleaf配置,添加freemarker配置:
## -----------------------------------------------------------------
## thymeleaf 模板配置
## -----------------------------------------------------------------
## 关闭thymeleaf缓存,仅在开发时使用
#spring.thymeleaf.cache=false
## 检查模板是否存在,然后再呈现
#spring.thymeleaf.check-template-location=true
## Content-Type值
#spring.thymeleaf.content-type=text/html
## 模板编码
#spring.thymeleaf.encoding=UTF-8
## 在构建URL时预先查看名称的前缀
#spring.thymeleaf.prefix=classpath:/templates/
## 在构建URL时添加到视图名称后的后缀(默认值:.html)
#spring.thymeleaf.suffix=.html
# -----------------------------------------------------------------
# freemarker 模板配置
# -----------------------------------------------------------------
# 模板文件后缀名
spring.freemarker.suffix=.html
spring.freemarker.content-type=text/html
spring.freemarker.enabled=true
# 是否开启缓存
spring.freemarker.cache=false
# 模板加载路径 按需配置
spring.freemarker.template-loader-path=classpath:/templates/
# 编码格式
spring.freemarker.charset=UTF-8
3、修改demo 视图
修改前文的demo视图文件如下:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>demo - index</title>
</head>
<body>
<h1>demo-index.html - spring boot demo page</h1>
<br/>用户名称:${username}
<br/>
<br/>返回结果:${result}
</body>
</html>
注意一下,我把<meta ./>改为<meta>,<br/>改为<br>。
启动应用,访问浏览器如下: