FreeMarker相关总结
标签: FreeMarker总结
常用语法点
重复定义同一个变量名会修改原来的值,即使是在import导入的文件中的变量
freemarker只支持四种标量(可以理解为Java中的数据类型):字符串、数字、日期/时间、布尔值
freemarker只支持两种数据模型(可以理解为Java中的数据结构):hash哈希表(可以理解为Java中的Map)、sequences序列(可以理解为Java中的List)
在freemarker中使用interpolations插值,即${}将真实的值替换花括号内的表达式
freemarker中使用#assign指令定义变量时,是遵循先后定义在前,使用在后的,例如,在一个公共的a.ftl文件中用#assign指令定义了一个变量,然后想在b.ftl中使用,该变量就得导入该ftl文件,假设在b.ftl中间有使用这个变量,那就不能在该行的下面导入a.ftl(无论是import还是include)
感叹号是为变量设立默认值例如${name!''}如果name为null,则给name给个''空值(并非null,此时''可以省略)
一个问号后面紧接着是freemarker的内敛函数类似于java的点(StringUtil.isNotBlank("");)
两个问号表示该变量是否不为空,例如 <#if name??> <br></#if> 如果name不为空则显示 <br> 标签
list可简单分为两种常用方式:
- <#list 1..num as i>
<input name="${i}"/>
</#list>
//类似于Java中的for(int i=1;i<=num;i++);
- <#list beans as bean>
<span>${bean!}</span>
</#list>
//类似于Java中的foreach