所有分类
  • 所有分类
  • 未分类

FreeMarker系列–对空值、长度、字符串的判断

简介

本文介绍FreeMarker如何对空值、长度、字符串的判断。

判断对象是否存在(null)

经常会用到,如果对象 != null 则xxxx,在freemarker中表达比较奇怪,例如判断 target 是否为null,如果不为 nll 则做xxx动作

<#if target??>
    xxxx
</#if>

(目标变量后面连续两个??)

字符串或数字比较

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 

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录