此处的${username!} 如何username 是null 或者不存在使用!可以阻止异常抛出 此处的${item.birthday?string('yyyy-MM-dd')} 把生日 date 格式化输出 转义${var?string('yes','no')} 如何转义html内容 ${var?html} 把富文本当成文本输出

1.${date}此处的date如果是sql.date这样取值没问题如何使util.date会报错 因为freemarker是和数据库匹配的 util.date需要转义 ${date?string(' yyyy-MM-dd HH:mm:ss')} 2.对null处理 或者根本不存在的变量 都可以采取如何措施 ${nullVar!'我是默认值'} 如果是null输出我是默认值 date存在进行转义不存在不转义 ${date!?string(' yyyy-MM-dd HH:mm:ss')} 3.变量的定义赋值、运算 4.封装的对象进行取值 比如user对象 5.集合list的遍历 6.集合map的遍历 通过key 键 来获取值 7.if语法 7.1if语法 7.2if else语法 7.3 if elseif else语法 > 转义 大于号 > 7.4 if 判 null <#if mylist??> 等价于<#if mylist?exists> 判断 mylist是否存在 <#list mylist as item> ${item} <#list> <#if> 7.5 if多条件 ||,&&,! 8.switch 9.string的基本操作指令 <#assign a = 'hello'/> <#assign b = 'world'/> 10.自定义函数 对整数数组进行排序 11.list排序內建函数及其指令 11.1正序 输出结果 11.2反转 输出结果 11.3list的长度 11.4list 下标取值 12.自定义指令 自定义指令使用@ 12.1页面 输出结果 12.2配置文件进行配置 在freemarker的config中配置 其中roleDirectiveModel是bean 次数是指向的注解 加载进来的 12.3control层 13.內建函数 13.1 split 13.2字符串转日期 13.3数字类型內建函数 13.4 list內建函数 13.5其他內建函数 eval 变成整数 14.macro、function 14.1macro 无参数 有参数 有默认值的 多个传参数的 14.2nested 输出结果 代码 14.3函数 输出结果 代码