Freemarker 各种格式化

 

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

整数取实际的位数
posted @ 2015-07-17 10:49  243573295  阅读(2299)  评论(0编辑  收藏  举报