freemarker跳过assertNotNull InvalidReferenceException

2024-02-10

我使用 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(使用前将#替换为@)

freemarker跳过assertNotNull InvalidReferenceException 的相关文章

随机推荐

  • 以编程方式为 ViewController 创建选项卡栏

    我一直在考虑以编程方式向我的视图控制器添加一个选项卡栏 因为有一个滚动视图 如果它不在我的视图中间 我就无法将其放置在上面 我对如何添加它有点困惑 是否需要在我的ViewDidLoad方法或我的AppDelegate 如果我有 UITabB
  • 如何从包含为 jar 的不同项目模块 @Inject 对象

    我在多模块 Maven 项目中使用 Vaadin CDI 其中包含一个通用类 如接口 抽象类等 所需的模块 我的问题是 我无法 Inject带注释的类 UIScoped像往常一样 它被放置在core模块到另一个 我还在得到不满意解决异常 S
  • 所有可能的词

    我想使用 a z 创建所有可能的 5 个字母单词 请建议任何好的且快速的算法 我尝试过创建一个 它看起来像这样 byte allchar new byte a b c d e f g h i j k l m n o p q r s t u
  • 如何在 iPad 版 Safari 中使用 jQuery 识别触摸事件?是否可以?

    是否可以使用 jQuery 识别 iPad Safari 浏览器上的触摸事件 我在 Web 应用程序中使用了 mouseOver 和 mouseOut 事件 由于没有 mouseOut 和 mouseMove 等事件 iPad 的 Safa
  • Django 无法从 django.contrib.auth.views 导入登录信息

    我尝试为我的页面构建登录功能 要按如下方式编辑 urls py 它会不断打印 无法从 django contrib auth views 导入名称 login 我该如何处理这个问题 from django contrib auth view
  • C++:0.和0.0之间的区别?

    我很清楚之间的区别0 and 0 0 整数和双精度 但这之间有什么区别吗0 and 0 0 请注意 预先非常感谢 Axel 没有区别 两个文字都是双精度的 来自 C 语法 fractional constant digit sequence
  • 使用 JavaScript 动态伪元素 CSS

    是否可以动态设置伪元素的CSS 例如 jQuery 动态样式帮助容器 help css width windowWidth xOffset height windowHeight yOffset bottom windowHeight le
  • LINQ - 对特定类型的类进行分组

    这个问题类似于LINQ 将一种类型的项目分组 https stackoverflow com questions 2835192 linq group one type of item但以更通用的方式处理 我有一个包含各种派生类的列表 我可
  • 使用 Flask 为使用 create-react-app 创建的前端提供服务

    我有一个带有 API 路由的 Flask 后端 由使用 create react app 创建的 React 单页应用程序访问 当使用 create react app 开发服务器时 我的 Flask 后端可以工作 我想为构建的服务 使用n
  • 如何在正则表达式中处理 \^$.?*|+()[{ 等特殊字符?

    我想匹配一个正则表达式特殊字符 http www regular expressions info characters html 我试过 x lt a b grepl x Error invalid regular expression
  • 使用selenium解决验证码问题

    我下面的代码是不断解决不同的验证码 请纠正我的错误 因为我不知道是什么原因造成的 from selenium import webdriver from python3 anticaptcha import ImageToTextTask
  • 通过单击按钮动态地将文本框添加到表单中

    我是一名 php 程序员 我有一个用户输入表单 其中一个人应该能够通过单击按钮添加任意数量的文本框 以输入多个电子邮件 ID 例如 他单击按钮第一次添加了一个附加文本框 他第二次单击该按钮 添加了另一个文本框 等等 您可以通过以下方式创建元
  • Java正则表达式匹配带有撇号的单词

    我有一句话 不 没关系 滞后 我试图检测 无滞后 模式 我的正则表达式是no s w s 1 3 lag 这失败了 但是 如果我的句子是 no it all right lag 请注意 它的单词没有撇号 则匹配成功 谁能建议我如何忽略窗口中
  • 分割字符串并保留分隔符

    我正在编写一个 chrome 扩展 我需要拆分一个仅包含文本和 img 标签的字符串 以便数组的每个元素都是字母或 img 标签 例如 a b c
  • Android-如何在文本视图上显示文本选择?

    我正在实现一个 epub 阅读应用程序 其中使用 textview 来显示 epub 文本 我想当用户长按文本视图时从文本视图中选择文本 然后对文本视图的选定文本执行多种操作 例如突出显示等 那么 我如何向用户显示这些光标来选择用户想要的文
  • 天文台重置

    我正在尝试完全重新启动 Chronometer 但它不起作用 相反 它正在暂停 基本上我想做的是在计时器计数到 10 时做一些事情 完成后我们提示用户重试 在这种情况下 我们希望从 1 秒重新计数到 10 秒 但计时器从暂停时间开始 而不是
  • Emscripten 绑定:如何从 Javascript 创建可访问的 C/C++ 数组?

    我在用box2d https github com kripken box2d js 并尝试创建一个链条形状 为了创建链形状或多边形形状 我必须传递向量数组才能指定几何形状 我没有看到任何文档可以帮助我完成此任务 也没有看到有关绑定的注释h
  • ASP.NET - Server.HtmlEncode 将哪些字符编码为命名字符实体

    Server HtmlEncode 将哪些字符编码为命名字符实体 到目前为止我只发现 lt gt amp and quot 肯定还有更多的事情吗 这是代码HtmlEncode 所以在这里您可以看到他们是如何做到的 public static
  • C“for”循环中的多个条件

    我遇到了这段代码 我通常使用 或 将多个条件分开for循环 但此代码使用逗号来执行此操作 令人惊讶的是 如果我改变条件的顺序 输出就会改变 include
  • freemarker跳过assertNotNull InvalidReferenceException

    我使用 freemarker 渲染对象列表 ul lt list publication as item gt li b item key b item value li ul 但有些项目的 item value null 会引发异常 fr