Apache freemarker™是一个模板引擎
一个基于模板和变化的数据来生成文本输出(HTML网页,电子邮件,配置文件,源代码,等等)的Java库。模板是用FreeMarker模板语言(FTL)编写的,通常使用通用编程语言(如Java)来准备数据(发出数据库查询、进行业务计算)。然后,Apache FreeMarker使用模板显示准备好的数据。在模板中,您关注的是如何显示数据,而在模板之外,您关注的是要显示什么样式。
这种方法通常被称为MVC (Model View Controller)模式,尤其适用于动态web页面。它有助于将web页面设计人员(HTML作者)和开发人员(通常是Java程序员)分离开来。设计人员不会在模板中面对复杂的逻辑,而且可以在不需要程序员更改或重新编译代码的情况下更改页面的外观。虽然FreeMarker最初是为在MVC web应用程序框架中生成HTML页面而创建的,但它并不绑定到servlet或HTML或任何与web相关的东西。它也用于非web应用程序环境。
FreeMarker的亮点
· 强大的模板语言:条件块、迭代、赋值、字符串和算术操作和格式、宏和函数,包括其他模板、缺省转义(可选)等等
· 多用途和轻量级:零依赖,任何输出格式,可以从任何地方加载模板(可插拔),许多配置选项
· 智能的国际化和本地化:本地化敏感的数字和日期/时间格式,本地化的模板变化。
· XML处理功能:将XML DOM-s放入数据模型并遍历它们,甚至以声明的方式处理它们
集成springboot
在idea上新建springboot项目,添加如下依赖:
a配置文件 :
注意:路径这里定位到templates目录下
temlpates下新建 文件
Controller如下:
启动项目,访问:
常用的freemarker语法
下面详细介绍在ftl模板中如何使用列表、map、字符串、数字、日期、switch以及macro宏指令等语法。
修改下controller,传递一些需要处理的参数
在freemarker中都是以下规则进行替换文本
${list?size},${name},${htmlText},${num},${bol}通过freemarker生成静态html
编写一个生成静态html文件的工具类FreemarkerUtil,其中SpringContextHolder是一个注入springbean的 工具类