什么是 Apache FreeMarker™

Apache FreeMarker™ 是一个模板引擎:一个 Java 库,用于根据模板和不断变化的数据生成文本输出(HTML 网页、电子邮件、配置文件、源代码等)。模板是用 FreeMarker 模板语言 (FTL) 编写的,FTL 是一种简单的专业语言(不是像 PHP 那样成熟的编程语言)。通常,使用通用编程语言(如 Java)来准备数据(发出数据库查询、进行业务计算)。然后,Apache FreeMarker 使用模板显示准备好的数据。在模板中,您关注的是如何呈现数据,而在模板之外,您关注的是要呈现的数据。

FreeMarker

这种方法通常被称为 MVC(模型视图控制器)模式,在动态网页中特别流行。它有助于将网页设计人员(HTML 作者)与开发人员(通常是 Java 程序员)区分开来。设计人员不会在模板中遇到复杂的逻辑,并且可以更改页面的外观,而无需程序员更改或重新编译代码。

虽然 FreeMarker 最初是为了在 MVC Web 应用程序框架中生成 HTML 页面而创建的,但它并不绑定到 servlet 或 HTML 或任何与 Web 相关的东西。它也用于非 Web 应用程序环境。

FreeMarker 的几个亮点:

  • 强大的模板语言:条件块、迭代、赋值、字符串和算术运算和格式、宏和函数,包括其他模板、默认转义(可选)等等
  • 多用途和轻量级:零依赖,任何输出格式,可以从任何地方加载模板(可插拔),多种配置选项
  • 国际化/本地化感知:区分区域设置的数字和日期/时间格式、本地化模板变体。
  • XML 处理功能:将 XML DOM-s 放入数据模型中并遍历它们,甚至以声明方式处理它们
  • 多功能数据模型:Java 对象通过可插拔适配器作为变量树公开给模板,这决定了模板如何看待它们。

Apache FreeMarker 是免费软件,根据 Apache 许可证 2.0 版获得许可。

请注意,该项目自 2.3.24-pre01 (2015-09-02) 起归 Apache Software Foundation 所有。早期版本(如 2.3.23)具有不同的版权所有者。