Freemaker FTL指令常用标签及语法
注意**:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。
freemaker注释:<#– 注释内容 –>格式部分,不会输出
基础语法
1、字符输出
1 | ${emp.name?if_exists} // 变量存在,输出该变量,否则不输出 |
常用内部函数:
1 | ${"123<br>456"?html} // 对字符串进行HTML编码,对html中特殊字符进行转义 |
字符串的两种拼接方式拼接:
1 | ${"hello${emp.name!}"} // 输出hello+变量名 |
可以通过如下语法来截取子串:
1 | <#assign str = "abcdefghijklmn"/> |
2、日期输出
1 | ${emp.date?string('yyyy-MM-dd')} //日期格式 |
3、数字输出(以数字20为例)
1 | ${emp.name?string.number} // 输出20 |
4、申明变量
1 | <#assign foo=false/> // 声明变量,插入布尔值进行显示,注意不要用引号 |
5、比较运算符
1 | 表达式中支持的比较运算符有如下几个: |
6、算术运算符
1 | FreeMarker表达式中完全支持算术运算, |
7、逻辑运算符
逻辑运算符有如下几个:
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑运算符只能作用于布尔值,否则将产生错误
8、FreeMarker中的运算符优先级如下(由高到低排列):
①、一元运算符:!
②、内建函数:?
③、乘除法:*, / , %
④、加减法:- , +
⑤、比较:> , < , >= , <= (lt , lte , gt , gte)
⑥、相等:== , = , !=
⑦、逻辑与:&&
⑧、逻辑或:||
⑨、数字范围:..
实际上,我们在开发过程中应该使用括号来严格区分,这样的可读性好,出错少
9、if 逻辑判断(注意:elseif 不加空格)
1 | <#if condition> |
10、switch (条件可为数字,可为字符串)
1 | <#switch value> |
11、集合 & 循环
1 | // 遍历集合: |
12、Map对象
1 | // 创建map |
13、FreeMarker支持如下转义字符:
1 | \” :双引号(u0022) |
14、include指令
1 | // include指令的作用类似于JSP的包含指令: |
15、import指令
1 | // 类似于jsp里的import,它导入文件,然后就可以在当前文件里使用被导入文件里的宏组件 |
17、compress 压缩
1 | // 用来压缩空白空间和空白的行 |
18、escape,noescape 对字符串进行HTML编码
1 | // escape指令导致body区的插值都会被自动加上escape表达式,但不会影响字符串内的插值,只会影响到body内出现的插值,使用escape指令的语法格式如下: |