以下例子参考freemarker官方文档 ,在freemarker中,默认的如果表达式是空会报错。所以需要对表达式进行判空操作。
修复值为空报错
- 判断属性为空
${myobj.myProp!}
如果myProp为空,则不报错;
- 返回默认值
${myobj.myProp!"默认值"}
如果myProp为空,则不报错,同时返回“默认值”。这种只能在myProp为空时不报错,但myobj为空还会报错,继续看下边。
- 对象和属性都判空
${(myobj.myProp)!"默认值"}
如果myobj为空或者myProp为空,都不报错,并返回“默认值”
遍历List判空
<#if myList??>
<#list myList as ele>
</#list>
</#if>
更进一步只有list不是empty时才显示;
<#if myList?? && myList?size gt 0>
<#list myList as ele>
</#list>
</#if>