freemarker介绍

FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

常用的java模板引擎还有哪些?

Jsp、Freemarker、Thymeleaf 、Velocity 等。

  • Jsp 为 Servlet 专用,不能单独进行使用。

  • Thymeleaf 为新技术,功能较为强大,但是执行的效率比较低。

  • Velocity从2010年更新完 2.0 版本后,便没有在更新。Spring Boot 官方在 1.4 版本后对此也不在支持,虽然 Velocity 在 2017 年版本得到迭代,但为时已晚。

页面渲染过程

使用依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency><!-- apache 对 java io 的封装工具库 -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version>
</dependency>

配置文件

server:port: 8881 #服务端口
spring:application:name: freemarker-demo #指定服务名freemarker:cache: false  #关闭模板缓存,方便测试settings:template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试suffix: .ftl               #指定Freemarker模板文件的后缀名

创建模板

在resources下创建templates,此目录为freemarker的默认模板存放目录。

在templates下创建模板文件 01-basic.ftl ,模板中的插值表达式最终会被freemarker替换成具体的数据。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Hello World!</title>
</head>
<body>
<b>普通文本 String 展示:</b><br><br>
Hello ${name} <br>
<hr>
<b>对象Student中的数据展示:</b><br/>
姓名:${stu.name}<br/>
年龄:${stu.age}
<hr><ul><#--判空、条件、集合遍历-->
</ul><#--算术运算、比较、逻辑运算--><#--内置函数--></body>
</html>

创建controller

创建Controller类,向Map中添加name,最后返回模板文件。

package com.heima.demo.freemarker.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.client.RestTemplate;import java.util.Map;@Controller
public class HelloController {@GetMapping("/basic")public String test(Model model) {//1.纯文本形式的参数model.addAttribute("name", "freemarker");//2.实体类相关的参数Map<String, Object> student = new HashMap<>();student.put("name","小明");student.put("age", 18);model.addAttribute("stu", student);return "01-basic";}
}

创建启动类

package com.heima.demo.freemarker;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class FreemarkerDemotApplication {public static void main(String[] args) {SpringApplication.run(FreemarkerDemotApplication.class,args);}
}

测试

请求:http://localhost:8881/basic

FreeMaker模板引擎相关推荐

  1. freemaker模板引擎使用详解

    目录: 一.freemaker介绍 二.freemaker的使用 正文: 一.freemaker介绍 1.1FreeMarker概述:FreeMarker是一款模板引擎,即一种基于模板和要改变的数据, ...

  2. SpringBoot2.1.5 (32)--- SpringBoot整合 Freemaker 模板引擎

    一.Freemarker 1.maven 依赖: 2.yml 文件配置: 3.创建Freemarker模板文件 4.创建测试Controller 5.启动项目,进行测试 一.Freemarker 简介 ...

  3. 利用Freemaker模板引擎制作包含表格和图片的word导出模板

    目录 1.设置好word文档内容及格式 2.将word文档另存为xml格式 3.$占位符替换 4.图片换成占位符 1.设置好word文档内容及格式 将需要动态输出的数据用${}来占位标记,图片就需要在 ...

  4. Spring Boot整合Thymeleaf模板引擎

    转载自 Spring Boot整合Thymeleaf模板引擎 什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMa ...

  5. Java 模板引擎主流,freemaker ,thymeleaf (技术的介绍,重要是理解)(学成在线day04)

    spring  boot  使用两个模板引擎 一 freemaker (来自学成在线第四天的页面静态化) 静态化之后上传到 gridFs 服务器上 目录如下 1.配置文件 application.ym ...

  6. Spring boot(五)模板引擎 Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML 5 内容的模板引擎.类似 JSP.Velocity.FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进 ...

  7. springboot模板引擎_Spring Boot实战:如何搞定前端模板引擎?

    作者:liuxiaopeng 链接:https://www.cnblogs.com/paddix/p/8905531.html 前言 虽然现在很多开发,都采用了前后端完全分离的模式,即后端只提供数据接 ...

  8. Spring Boot (四)模板引擎Thymeleaf集成

    一.Thymeleaf介绍 Thymeleaf是一种Java XML / XHTML / HTML5模板引擎,可以在Web和非Web环境中使用.它更适合在基于MVC的Web应用程序的视图层提供XHTM ...

  9. Spring Boot集成Thymeleaf模板引擎

    一.Thymeleaf 模板介绍 Spring Boot 推荐使用Thymeleaf 来代替传统开发中的JSP,那么什么是Thymeleaf 模板引擎呢?下面就来简单的介绍一下. Thymeleaf ...

最新文章

  1. first dairy----the birth of my blog···
  2. 前端cookie 放到请求头_ajax请求携带cookie和自定义请求头header(跨域和同域)
  3. Qt Creator 快捷键
  4. PHP的empty isset is_null
  5. [python爬虫] 爬取图片无法打开或已损坏的简单探讨
  6. OGNL表达式struts2标签“%,#,$”
  7. fork、vfork、clone
  8. new/delete和malloc/free的区别一般汇总
  9. android中影藏状态栏和标题栏的几种方法
  10. java LineRecordReader类解析
  11. labelme安装及标签制作
  12. 《Android移动应用基础教程》之川菜菜谱
  13. ar ebs 销售订单关闭_雅视推AR眼镜虚拟试戴,眼镜行业科技转型强信号
  14. SATA、mSATA 、PCIe和M.2——SSD硬盘的接口详解
  15. 手机电脑怎么上P站-国内版pixiv你可知晓
  16. Apache-Flink深度解析-JOIN-LATERAL-Time Interval(Time-windowed)
  17. 投屏类H5应用开发分析
  18. unity移动端材质丢失呈洋红色问题记录
  19. 苹果审核状态为Metadata Rejected下的问题
  20. C#之十八 GUI用户界面编程

热门文章

  1. Task(Activity栈) 详解
  2. c语言注册登录程序字符串,C语言实现注册
  3. 你不知道的 Chrome DevTools 实用技巧大全!(收藏)
  4. 你不知道的 Chrome DevTools
  5. 【SpringBoot学习笔记】二、配置文件
  6. Streamsets--一个流批一体的ETL工具
  7. 嵌入式 linux 开源项目
  8. Linux开源存储网络详解
  9. 5.论文学习A review of deep learning in medical imaging: Imaging traits, technology trends, case studies
  10. 分享几个省电小技巧 让你的mac电脑使用时间更长