freemarker中空值 null的处理 ?exists ?if_exists ?default(“”)

时间:2021-09-14 16:18:28

exists:由空值测试运算符的引入,它被废弃了。 exp1?exists 和 exp1??是一样的, ( exp1)?exists 和(exp1)??也是一样的。

if_exists:由默认值运算符的引入,它被废弃了。 exp1?if_exists 和 exp1!相似, ( exp1)?if_exists 和( exp1)! 相似。不同之处在于,用 if_exists 的默认值不仅仅同时是空字符串,空序列和空哈希表,而且布尔值 false 和不做任何事情的变换,还有忽略所有参数。

<#if sc?exists>
${sc?if_exists}
exists用在逻辑判断,而if_exists用来打印东西时用到,如果存在打印,不存在打印空字符串.
exp1?exists将会被exp1??代替
exp1?if_exists将会被exp1!代替
exp1?default(exp2)将会被exp1!exp2.