freemarker,使用

freemarker if 判断对象是否为空
freemarker中判断对象是否为空,一般有2种做法:

1. 用if判断对象是否为空
<#if obj??>不为空处理</#if>

<#if obj?default("xxx")>

obj如果为空则给obj复制xxx。

2. 给对象赋默认值,避免空值
使用${obj!'xxx'}来避免对象为空的错误。如果obj为空,则obj=xxx

------------------------

Freemarker判断对象是否为空
1. freemarker中显示某对象使用${name}.
但如果name为null,freemarker就会报错。如果需要判断对象是否为空:

2. 当然也可以通过设置默认值${name!''}来避免对象为空的错误。
如果name为空,就以默认值(! 后的字符)显示。

3. 对象user,name为user的属性的情况,user,name都有可能为空,
那么可以写成${(user.name)!''},表示user或者name为null,都显示为空。判断为空

例子

<#if obj??>
obj不为空
<#else>
obj为空
</#if>
<!--判断不为空,name为空,就以默认值(“!”后的字符)显示-->

${name!''}

三木表达式:

首先因为freemaker里摒弃了null这个关键词,空判断要用下面${(a!)}或者${(a)!},而且freemaker不支持冒号这种语法,但是提供了内置方法string,如下写法

${(true)?string('111','222')}


但是如果实际这么用下面写会报错
${(a=='0')?string('111','222')}

因为a为null的时候,freemaker解析el表达会抛出异常,所以要把两者结合用下面写法

${((a!)=='0')?string('111','222')}

可以使用?string和?then进行类三目的操作。

bool ?string('yes',no)

bool ?then('yes','no'

freemarker怎么判断变量是否等于字符串?
<#if bb?? && bb=='字符串' >
   <w:t>/</w:t>
  <#else>
 <w:t>${bb!""}</w:t>
</#if>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值