1. 判断对象是否存在(null)
经常会用到,如果对象 != null 则xxxx,在freemarker中表达比较奇怪,例如判断 target 是否为null,如果不为 nll 则做xxx动作
<#if target??>
xxxx
</#if>
(目标变量后面连续两个??)
2. 字符串或数字比较
java里标准字符串比较需要 .equals() 方法,在freemarkder中进行了简化,字符串的比较方法和数字做到完全一样
<#if str == "success">
xxx
</#if>
<#if str !== "error">
xxx
</#if>
三:判断list长度是否大于0
<#if (fields?size>0) >
</#if>
四:截取字符串长度
<#if infos.name?length lt 7 >
${infos.name}
<#else>
${infos.name[0..6]}...
</#if>
五:时间格式化
时间戳转日期
${time?number_to_datetime}
${time?number*1000} 时间戳乘1000
日期格式化
${dateTime?string('yyyy-MM-dd hh:mm:ss')} 格式化为 2020-11-12 15:05:29
${dateTime?string('yyyy-MM-dd ')} 格式化为 2020-11-12
六:数值格式化
需注意:Freemarker中对于数值只有三种类型,
货币(currency类型)::${0.3?string.currency}
百分比(percent类型):${0.3?string.percent}
数字(number类型)(默认):${0.3?string.number}---默认会有千分位显示,(例如5000则显示为5,000)number
如若不需要这种显示则可以(前提传入的数据是number类型)${number?string}。反之如果需要(前提是传入的是String类型)${string?number}
${num?string('0.00')}
如果小数点后不足两位,用 0 代替
${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
${num?string(',###.00')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替
${num?string(',###.##')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点
${num?string('000.00')}
输出为:012.70
整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位
${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70 参考https://blog.csdn.net/qq_32534855/article/details/67631788