freemarker基本常识
1.freemarker的命名规则是_(比如index_of这个内建函数),而不是驼峰。
2.常用${var}语法进行取值。 ?表示的是执行某个方法的意思。
3.对null、不存在的对象取值${var!}(这样就不会抛出异常) (!会取最近的变量进行null或者不存在判断,可以通过()来对多个值进行判断)
4.<#if myList??> 表示判断myList变量是不是存在或是不是空值
等同于<#if myList?exists>
5.取包装对象的值,通过“点”语法:${(User.name)!}
6.取值的时候可以进行计算、赋值
7.Date类型格式${date?string('yyyy-MM-dd HH:mm:ss')} (这里的date是java.util.Date)
8.freemarker不支持boolean类型的true/false。输出是会抛出异常!
但是可以转化:布尔值: ${booleanVar?string('yes','no')}
9.转义HTML内容${var?html}(会把后台传来的值当纯文本输出)
10.自定义变量
<#assign var=30 />
11.一般遍历list集合
<#list myList?sort?reverse as item>
${item_index}: ${item}
<#list>
12.freemarker内建指令以#开始,自定义指令以@开始。
13.Freemarker的内建函数就是直接可以使用的函数,是freemarker封装好的函数。
14.<li>取list第一个值:${listVar?first}</li>
<li>取list最后一个值:${listVar?last}</li>
常用内建函数
1.处理字符串
substring(截取)、cap_first(首字母大写)、ends_with(以xxx结尾)、contains(是否包含xxx)
date、datetime、time(把字符串转化为日期格式的Date)
starts_with、index_of、last_index_of、split、trim
2.处理数字
string、x?string("0.##")(将小数保存俩位小数点)
round(四舍五入)、floor(把小数点后的数去掉)、ceiling(数字进1,变成整数)
3.处理List的内建函数
first、last、seq_contains、seq_index_of
size、reverse、sort、sort_by(根据属性排序)
chunk(分组)
4.其他内建函数
is函数:is_string、is_number、is_method(返回boolean值)
()、has_content(是否有内容,返回boolean值)函数
eval
总结: