FreeMarker学习笔记

前言

从毕业到现在,从事的项目基本都是前后端分离项目,当然了这也是大势所趋。然而时间一长,发现自己View层的能力愈发欠缺,于是乎就找了FreeMarker这种对spring boot天生支持良好的模版引擎充电。

理解模版引擎

定义

借用官方的解释:FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本的通用工具。

FreeMarker后缀是.ftl的文件,它是Java的一个类库,View层的一个组件,一般用于生产html

images

处理流程

其实简单来讲大致的流程是这样的:

images

进入正题

初始化

  • pom引入依赖如下
1
2
3
4
5
6
7
8
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

目录结构

images

  • src源代码目录
  • static静态资源目录
  • templates即.ftl文件目录

两个简单的demo

如今的spring boot自动化配置时代,许多事情都变得简单了起来。spring boot规定只要将.ftl文件丢到templates包下,在控制层返回.ftl文件的名字即可生成html返回给浏览器

images

images

  • 启动项目访问浏览器即可看到效果

images

再来看看一个简单的传值

images

images

  • 输出结果

images

这里借用一下官网解释,FreeMarker这个模版引擎是由下面几部分混合而成

  • 文本:文本会照着原样来输出。
  • 插值:这部分的输出会被计算的值来替换。插值由 ${ and } 所分隔(或者 #{ and },这种风格已经不建议再使用了;点击查看更多)。
  • FTL 标签【指令】:FTL标签和HTML标签很相似,但是它们却是给FreeMarker的指示, 而且不会打印在输出内容中。
  • 注释:注释和HTML的注释也很相似,但它们是由 <#---->来分隔的。注释会被FreeMarker直接忽略, 更不会在输出内容中显示。

我们来看一个具体的模板。其中的内容已经用颜色来标记了: 文本【蓝】, 插值【橘】, FTL 标签【黄】, 注释【绿】

images

下面再来理解这张图应该就好理解了吧

images

总结

这篇就先入个门吧,FreeMarker是由很多高级特性的。后面有空再专门写一篇自定义函数、自定义指令的文章吧。

备用:官方手册

本文标题:FreeMarker学习笔记

文章作者:JF

发布时间:2018年11月25日 - 18:11

最后更新:2018年11月26日 - 08:11

原始链接:http://bandao.ink/2018/11/25/FreeMarker学习笔记/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际

若需转载请保留原文链接及作者