SpringBoot整合Freemarker使用

简介: SpringBoot整合Freemarker使用

模版引擎对比说明

在Java里面常用的模版引擎有很多, 例如: jspFreemarkerThymeleaf

我们来对比一下各个模版引擎.

  • JSP(后端渲染,消耗性能) Java Server Pages 动态网页技术,由应用服务器中的JSP引擎来编译和执行,再将生成的整个页面返回给客户端,可以写java代码,持表达式语言(eljstl),内建函数,但是占用JVM内存。 是javaweb官方推荐, 但springboot不推荐

附上官方文档说明

https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations

  • Freemarker
    FreeMarker Template Language(FTL)  文件一般保存为 xxx.ftl
    严格依赖MVC模式,不依赖Servlet容器(不占用JVM内存),内建函数
  • Thymeleaf (主推)
    轻量级的模板引擎(负责逻辑业务的不推荐,解析DOM或者XML会占用多的内存)
    可以直接在浏览器中打开且正确显示模板页面,直接是html结尾,直接编辑

整合Freemarker

  • 增加依赖 pom.xml
<!-- 引入freemarker模板引擎的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
  • 配置Freemarker  application.properties
# 是否开启thymeleaf缓存,本地为false,生产建议为true
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.allow-request-override=false
spring.freemarker.check-template-location=true
#类型
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
#文件后缀
spring.freemarker.suffix=.ftl
#路径
spring.freemarker.template-loader-path=classpath:/templates/
  • 编写路由 AopppController.java
@RequestMapping("/fm/index")
    public String fmIndex(ModelMap modelMap) {
        Map<String, String> map = new HashMap<>();
        map.put("name", "aoppp");
        map.put("desc", "描述");
        // 添加属性 给模版
        modelMap.addAttribute("user", map);
        return "fm/index";
    }
  • 编写模版 templates/fm/index.ftl
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<h1>dhsajdhkjks</h1>
<span>name ===</span><span> ${user.name} </span>
<span>desc ===</span><span> ${user.desc} </span>
</body>
</html>
  • 效果

目录
相关文章
|
Java Maven
springboot项目--freemarker使用ftl模板文件动态生成图片
springboot项目--freemarker使用ftl模板文件动态生成图片
716 0
|
14天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
22 0
|
3月前
|
消息中间件 Java Kafka
Spring Boot与模板引擎:整合Thymeleaf和FreeMarker,打造现代化Web应用
【8月更文挑战第29天】这段内容介绍了在分布式系统中起到异步通信与解耦作用的消息队列,并详细探讨了三种流行的消息队列产品:RabbitMQ、RocketMQ 和 Kafka。RabbitMQ 是一个基于 AMQP 协议的开源消息队列系统,支持多种消息模型,具有高可靠性及稳定性;RocketMQ 则是由阿里巴巴开源的高性能分布式消息队列,支持事务消息等多种特性;而 Kafka 是 LinkedIn 开源的分布式流处理平台,以其高吞吐量和良好的可扩展性著称。文中还提供了使用这三种消息队列产品的示例代码。
30 0
|
6月前
|
XML 前端开发 Java
Springboot整合freemarker
Springboot整合freemarker
|
6月前
|
XML JavaScript 前端开发
SpringBoot整合Freemarker使用
SpringBoot整合Freemarker使用
46 0
|
数据采集 XML 缓存
【Java】SpringBoot项目整合FreeMarker加快页面访问速度
【Java】SpringBoot项目整合FreeMarker加快页面访问速度
222 0
|
Java Maven
springboot使用freemarker的入门Demo
1.创建一个maven web项目 2.添加所需要的依赖
|
Java
Java:SpringBoot 整合 Freemarker模板引擎渲染html
Java:SpringBoot 整合 Freemarker模板引擎渲染html
290 0
Java:SpringBoot 整合 Freemarker模板引擎渲染html
|
SQL 小程序 关系型数据库
Java版点餐小程序2021最新版笔记,springboot+Mysql+freemarker+微信小程序实现扫码点餐小程序(上)
Java版点餐小程序2021最新版笔记,springboot+Mysql+freemarker+微信小程序实现扫码点餐小程序
226 0
|
前端开发 Java
Java入门007~springboot+freemarker+bootstrap快速实现分页功能
Java入门007~springboot+freemarker+bootstrap快速实现分页功能
139 0