1.FreeMarker是一个模板引擎,是一个基于模板生成文本输出的通用工具,使用纯java编写。FreeMarker被设计生成HTML Web页面,特别是基于MVC模式的应用程序。FreeMarker不是Web应用框架,而适合作为Web应用框架的一个组件
2.FreeMarker模板包含下面4种特定的部分:
- ${}或#{} 插值,FreeMarker会在输出时用实际值进行替代
- FTL 标记,类似THML标记,为与HTML标记区分,用#开始(有些以@开始)
- 注释 :<#--和-->之间
- 文本直接输出
3.空白字符会在输出时移除
4.if指令
<#if>
<#else>
<#elseif>
</#if>
如果变量是布尔值时,可以直接<#ifcondition>
5.list指令<#list sequence asvalue>repeatThis</#list>
sequence是遍历的list.
value是当前遍历项的值,repeatThis是每一项遍历时执行的语句
<#list cars as car>
<li>${car.name} </li>
</#list>
6.两种类型的指令:预定义指令和用户指令
用户指令要用@替换#
7.内建函数:类似java对象的方法,使用"?"代替"."来访问他们
?html
?cap_first
?lower_case
?upper_case
?trim
?size
${test?upper_case}将变量test的值变成大写输出
8.!:指定缺失变量或变量值为null时 的默认值
${value!""}如果value变量不存在或者值为null就输出空
9.??:判断某个变量是否存在,返回boolean值
<#if (a.b) ??> 注意在if后不加$符号
10.赋值操作符
<#assign x=1>
11.插值只能用于文本区和字符串内部
<h1>${user}</h1>
<#include"/footer/${user}.html"></#include>
表达式的结果必须是字符串,数字或者日期,这些指可以自动转换为字符串,而其他类型比如布尔值,序列需要手动地转换为字符串