Notice: Undefined offset: 36 in /www/wwwroot/wyc/wyc/wyc.php on line 67
Notice: Undefined offset: 37 in /www/wwwroot/wyc/wyc/wyc.php on line 67
1前言在上一篇文章Spring Boot集成百里香叶[1]中,我们学习了如何将模板百里香叶集成到Spring Boot中,那么今天我们就来看看另一个已经建立的开源免费模板引擎——FreeMarker!
2FreeMarker 简介FreeMarker是一个模板引擎:一个通用工具,它基于要更改的模板和数据,用于生成输出文本。它不是面向最终用户的,而是一个Java类库,一个程序员可以嵌入到产品中的组件。
以上来自FreeMarker的官方定义。通过使用FreeMarker,我们可以将需要的模板和数据渲染成HTML,从而达到想要的效果。通过将模板与数据分离,分工更加明确。模板方面侧重于如何显示数据,而在数据方面,我们可以侧重于显示什么样的数据。下图是如上所述的FreeMarker的功能。
接下来,让我们看看如何像百里香一样将FreeMarker集成到我们的Spring Boot中,以使我们的开发更容易。
3准备工作环境准备在正式开始之前,还是给出本文所依据的环境,避免环境问题可能给大家带来的影响。
JDK 17
想法
跳羚2.x
添加 FreeMarker 依赖在开始之前,我们需要添加FreeMarker的相关依赖项。同样,这里我们可以选择两种方式。一种是在项目创建时添加,另一种是在项目创建后,在项目pom.xml文件中手工添加。接下来,让我们来看看如何添加它的两种不同的方式。如果还不清楚如何创建Spring Boot项目,可以参考我之前的文章:创建Spring Boot项目的3种方法[2]。
第一种
当使用IDEA创建一个新的Spring Boot项目时,在添加依赖项时检查模板引擎中的Apache FreeMarker。
2.第二种
如果在创建时没有添加FreeMarker模板引擎依赖,或者在项目创建之初没有添加需求,而是在后续过程中添加的,此时可以直接在项目pom.xml中手工添加FreeMarker依赖。
org.springframework.boot spring-boot-starter-freemarker添加 FreeMarker 相关配置添加完依赖项后,我们需要在项目配置文件application.yml中添加FreeMarker的相关配置
spring: freemarker: # 模板后缀名 suffix: .ftl # 文档类型 content-type: text/html # 页面编码 charset: UTF-8 # 页面缓存 cache: false # 模板路径 template-loader-path: classpath:/templates/4编写实体类和 Controller编写实体类创建一个用户类,并完成它的各种设置器、获取器、构造方法等。这里我仍然使用Lombok插件来简化我们的代码。关于这个插件的更多用法,请参考我之前的文章:Lombok的安装和使用指南[3]。
package com.cunyu.springbootfreemarkerdemo.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.stereotype.Component;@Component@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private int age; private String name; private String email;}编写 Controller这里我们创建一个用户对象,然后设置其年龄、邮箱、姓名等相关信息,再添加到属性中,便于传输到前端显示。
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;@Controllerpublic class UserController { @GetMapping public String index { User user = new User; user.setAge; user.setEmail; user.setName; model.addAttribute; return "index"; }}数据渲染实体类和控制器写好了,我们就可以用模板来展示了。我们在项目的资源/模板路径中创建新的index.ftl文件。注意,这里的文件名应该与控制器中index方法返回的字符串一致。
FreeMarker 实验| 年龄 | 电子邮件 | ${ user . name }${user.age} | ${user.email} |
启动我们的项目,然后在浏览器中访问以下路径:
http://localhost:8080/index
如果显示下图所示的信息,说明我们的集成工作已经成功完成!
5总结以上是FreeMarker与Spring Boot整合的具体过程。你可以和上一篇文章一起阅读:整合百里香叶和Spring Boot。比较一下百里香和FreeMarker在整合过程中的一些异同,相信你会有更多的收获。
最后,关于本文的案例代码,我已经上传到Github了,有需要的朋友可以自己拿:Portal [4]。
参考资料[1]file/tupian/20220910/107671467 Spring Boot集成汝叶
[2]创建file/tupian/20220910/119618308 Spring Boot项目的三种方式
[3]龙目岛的安装和使用指南:file/tupian/20220910/github _ 39655029/article/details/119992626
[4]门户:https://github . com/cunyu 1943/Java-learning/tree/main/spring boot-demo/spring boot-freemarker-demo


