FreeMarker是一款模板引擎: 是一种基于模板和数据,用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),FTL包含模板信息和数据标签与指令,使用FTL和数据通过模板引擎可以生成需要的文档或代码。
FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,没有被绑定到Servlet或HTML或任意Web相关的东西上,它也可以用于非Web应用环境中。
工作原理
功能细分
基本语法
FreeMarker模板文件主要由如下4个部分组成:
一、普通文本:直接输出的部分
二、${…}:FreeMarker将会输出真实的值来替换大括号内的表达式,这样的表达式被称为interpolation(插值)。
三、注释:注释和HTML的注释也很相似,但是它们使用
四、FTL标签(FreeMarker模板的语言标签):FTL标签和HTML标签有一些相似之处,但是它们是FreeMarker的指令,是不会在输出中打印的。这些标签的名字以#开头。(用户自定义的FTL标签则需要使用@来代替#)
注释
<!#–Freemarker注释–>
FreeMarker函数
内建函数很像子变量(也像Java中的方法),它们并不是数据模型中的东西,是FreeMarker在数值上添加的。为了清晰子变量是哪部分,使用?(问号)代替,.(点)来访问它们。常用内建函数的示例:
user?html 给出user的HTML转义版本,比如&会由&来代替。
user?upper_case 给出user值的大写版本(比如“JOHN DOE”来替代“John Doe”)
animal.name?cap_first 给出animal.name的首字母大写版本(比如“Mouse”来替代“mouse”)
user?length 给出user值中字符的数量(对于“John Doe”来说就是8)
animals?size 给出animals序列中项目的个数
特点## 标题
使用场景