freemarker 常用标签总结

1.freemarker 数字格式化

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
整数取实际的位数

2.if常用条件判断

a>判断是否存在:
通过exists关键字或者“??”运算符,返回一个布尔值
user.name?exists
user,name??
<#if user.name?exists>
   // TO DO

<#if user.age??>
   // TO DO


b>判断集合不为空:
<#if fields?size ge 0 >
....

<#if (fields?size>0) >  
  (必须加括号)

c>判断字符串值是否相等:
<#if str! == "error">
    xxx
   (!是防止参数为空时报错,要跟!= 区别开)

d>判断集合为空:  ${(page.content?size=0)?string("class=\"hide\"","")}

e>三目判断:
${(state! == 'ALL')?string("class=\"stateValue active\"","class=\"stateValue\"")}
${(user.id)! ?has_content?string("readonly=\"readonly\"","")}





你可能感兴趣的:(jsp+freemarker)