我使用 freemarker 渲染对象列表:
<ul>
<#list publication as item>
<li><b>${item.key}</b> : ${item.value}</li>
</#list>
</ul>
但有些项目的 item.value null 会引发异常:
freemarker.core.InvalidReferenceException: Expression item.value is undefined on line 12, column 44 in mailTemplate.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
at freemarker.core.Expression.getStringValue(Expression.java:118)
我希望 freemarker 呈现“空”或什么都不呈现,并继续发送邮件而不是阻止该邮件
我总是可以先检查列表,然后再将其发送到 freemarker,但如果我可以避免这一步,那就更好了
如果值丢失,您应该检查模板,然后打印对收件人有意义的内容(“null”对他们来说当然没有意义)。例如,如果该项目不需要价值,则不适用:
<li><b>${item.key}</b> : ${item.value!'N/A'}</li>
或者如果由于记录仍然不完整而缺少值,则跳过整行:
<#if item.value??>
<li><b>${item.key}</b> : ${item.value}</li>
</#if>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)