1、格式化日期
${updated?string("yyyy-MM-dd HH:mm:ss")}
如果指定的变量不一定存在,可以这样:
${(dateMap.beginTime?string("yyyy.MM.dd"))!''}
2、显示boolean值
<#assign foo=true/>
${foo?string("yes", "no")}
3、截取字符串长度
<#if (userVO.cnname)?? && ((userVO.cnname)?length > 10) > ${userVO.cnname?substring(0,10)}.. <#else> ${(userVO.cnname)!''} </#if>
4、数字格式
Freemarker中预订义了三种数字格式:number,currency(货币)和percent(百分比)其中number为默认的数字格式转换
例如:
<#assign tempNum=20> ${tempNum} ${tempNum?string.number}或${tempNum?string(“number”)} 结果为20 ${tempNum?string.currency}或${tempNum?string(“currency”)} 结果为¥20.00 ${tempNum?string. percent}或${tempNum?string(“percent”)} 结果为2,000%
freemarker数字格式化可以在两个地方设置,一个是全局的,即在freemarker.properties文件中设置number_format,还有一个是使用string指令来控制数据的输出格式。例如:
${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
整数取实际的位数