Spring Boot 整合 FreeMarker 实例
前言
在之前的文章Spring Boot 整合 Thymeleaf中,我们学习了如何将模板 Thymeleaf 整合到 Spring Boot 中,那今天我们就来看看,另一个老牌的开源免费模板引擎 - FreeMarker!
FreeMarker 简介
FreeMarker 是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
以上就是出自 FreeMarker 的官方定义,我们通过使用 FreeMarker,可以将我们所需的模板何数据渲染成 HTML,从而实现我们想要的效果。通过将模板与数据分开,让分工更加明确,模板方面则专注于如何将数据进行展现,而在数据方面,我们就可以专注于展示何种数据,下图就是我们以上所描述的 FreeMarker 的功能。
那接下来,我们就来看看,如何将 FreeMarker 像 Thymeleaf 一样整合到我们的 Spring Boot 中,让我们的开发更加简单。
准备工作
环境准备
正式开始之前,依然给出本文所基于的环境,避免环境问题可能给大家带来的影响。
- JDK 17(理论上推荐不低于 1.8 版本)
- IDEA
- SpringBoot 2.x
添加 FreeMarker 依赖
开始之前,我们需要添加 FreeMarker 的相关依赖,同样这里我们可以选择两种方式。一种是在创建项目时就添加上,另一种则是创建项目后在项目 pom.xml
文件中手动添加,接下来我们分别来看看两种不同的方式应该如何添加。如果还不清楚如何创建 Spring Boot 项目,可以参照我之前的一篇文章:创建 Spring Boot 项目的 3 种方式。
- 第一种
在使用 IDEA 创建 Spring Boot 新项目时,添加依赖时将模板引擎中的 Apache FreeMarker
勾选上。
2.第二种
如果在创建时未添加 FreeMarker 模板引擎依赖,或者在项目开始创建之初并未有此需求,但后续过程中又增加了该需求,则此时可以直接在项目 pom.xml
中手动添加 FreeMarker 依赖即可。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
添加 FreeMarker 相关配置
添加依赖后,我们需要在项目配置文件 application.yml
中添加 FreeMarker 的相关配置。
spring:freemarker:# 模板后缀名suffix: .ftl# 文档类型content-type: text/html# 页面编码charset: UTF-8# 页面缓存cache: false# 模板路径template-loader-path: classpath:/templates/
编写实体类和 Controller
编写实体类
创建一个 User
类,并将其各种 setter
、getter
、构造方法等完成,这里我依然使用了 Lombok 插件,以便简化我们的代码。关于该插件的更多用法,可以参照我之前的文章:Lombok 的安装及使用指南。
package com.cunyu.springbootfreemarkerdemo.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;/*** Created with IntelliJ IDEA.** @author : zhangliang* @version : 1.0* @project : java-learning* @package : com.cunyu.springbootfreemarkerdemo.entity* @className : User* @createTime : 2021/11/30 21:55* @email : 747731461@qq.com* @公众号 : 村雨遥* @website : https://cunyu1943.github.io* @description :*/@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private int age;private String name;private String email;
}
编写 Controller
这里我们创建一个 User
对象,然后设置其年龄、Email、姓名等相关信息,然后将其加到属性中,方便传输到前端进行展示。
package com.cunyu.springbootfreemarkerdemo.controller;import com.cunyu.springbootfreemarkerdemo.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;/*** Created with IntelliJ IDEA.** @author : zhangliang* @version : 1.0* @project : java-learning* @package : com.cunyu.springbootfreemarkerdemo.controller* @className : UserController* @createTime : 2021/11/30 22:04* @email : 747731461@qq.com* @公众号 : 村雨遥* @website : https://cunyu1943.github.io* @description :*/
@Controller
public class UserController {@GetMapping("/index")public String index(Model model) {User user = new User();user.setAge(26);user.setEmail("747731461@qq.com");user.setName("村雨遥");model.addAttribute("user", user);return "index";}
}
数据渲染
当完成实体类和 Controller 编写后,我们就可以利用模板来进行展示了。我们在项目的 resources/templates
路进行新建一个 index.ftl
文件,注意这里文件名要保持和 Controller 中 index
方法所返回的字符串一致。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>FreeMarker 实验</title>
</head>
<body><table><tr><td>姓名</td><td>年龄</td><td>Email</td></tr><tr><td>${user.name}</td><td>${user.age}</td><td>${user.email}</td></tr></table>
</body>
</html>
测试
将我们的项目启动起来,然后在浏览器中访问如下路径:
http://localhost:8080/index
如果显示如下图中的信息,那么就说明我们此次的整合工作顺利完成!
总结
以上就是 Spring Boot 整合 FreeMarker 的具体过程了,可以结合之前的文章:Spring Boot 整合 Thymeleaf 实例共同阅读,对比 Thymeleaf 和 FreeMarker 在整合过程中的一些共同点和不同点,相信你会有更多的收获。
最后,关于本文案例代码,我已经上传到 GitCode,有需要的小伙伴可以自取:传送门。
Spring Boot 整合 FreeMarker 实例相关推荐
- freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker
今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...
- Spring Boot 整合 Freemarker
这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页.电子邮件.配置文件以及源代码等.Freemarker 不是面向最终用户的,而是一个 Ja ...
- Spring Boot整合Freemarker
目录 Freemarker模板 导入 Freemarker模板 Freemarker自动化配置 创建类说明 其他配置 直接输出值 输出变量 其他常见表达式 常见内置函数 常见指令 宏 Freemark ...
- spring boot整合freemarker及freemarker基础语法超详细讲解
采用模板+数据=HTML 实现页面的静态化. 也就是服务端的页面静态化技术. JSP/Freemarker/Thymeleaf是常见的模板引擎. 引依赖 okhttp与HttpClient一样的作用, ...
- Spring Boot整合Drools规则引擎实例
1.DRools介绍 官网:https://www.drools.org/ 规则引擎主要完成的就是将业务规则从代码中分离出来. DRools一款由JBoss组织提供的基于Java语言开发的开源规则引擎 ...
- java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板
点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...
- Spring boot 整合 Mybatis 实现增删改查(MyEclipse版)
1.首先搭建好一个Spring boot 程序,编写好启动类. 启动类代码如下: @SpringBootApplication public class Start {public static vo ...
- Elasticsearch实战篇——Spring Boot整合ElasticSearch
2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...
最新文章
- stn算子_在 Excel 中,公式都是以 ____________ 开始的,后面由操作数和运算符构成。...
- 【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )
- 快来领猪肉啊,网易云官网建设意见征集计划获奖名单公布
- 【Git/Github学习笔记】Git课程简介
- 7本免费的Java电子书和教程
- jquery.blockui示例
- python创建txt文件换行输入,python如何创建txt文件并写入
- 笔记本计算机涂硅脂,笔记本电脑怎么涂cpu散热硅脂
- 键盘删除键长按只能删除一个字符?--关闭Windows筛选键
- 做sxy官网的一点经验
- 白平衡算法---色温曲线
- ups机房动环监控系统方案
- Web简易时间轴制作(超详细)
- 副族元素从上到下原子半径_原子的大小以原子半径来表示
- pip 切换清华镜像源
- 【python】 输出换行字符 “\n“
- java实现邮箱注册验证
- 论文阅读笔记《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》
- 松下Megacon叠屏液晶电视有声音没图像怎么修理
- (转)王国斌:牛市还是熊市应该在意吗?
热门文章
- 基于uniapp搭建的个人课程表-主前端
- 惠普电脑u盘重装系统步骤_惠普电脑怎么重装系统|惠普电脑重装系统步骤
- 幕布,XMind , Effie , 让你对学习这件事上瘾
- 前后端分离项目—微信小程序的创建及app.json的配置(二)
- 2021年度中关村硬科技孵化器支持资金申报,奖励高达1000万
- 变频控制与移相控制组成的混合式控制全桥LLC谐振变换器仿真(PFM+PSM混合控制) 输出电压闭环控制,软开关,宽范围
- 2021河北高考英语口试成绩查询6,2020河北英语四六级准考证查询入口:http://cet-bm.neea.cn/Home/QueryTestTicke...
- Adobe有哪些软件?
- android 布局分析,关于Android应用程序界面五大布局的图文分析教程
- 运营商使劲倒腾5G,中国移动咪咕汇8K+120帧开启直播新视界了吗?