我试图通过HashMap<SeapSubscription, List<PiNotice>>
在freemarker模板中进行迭代。 该地图不包含任何空值(按键或值)。迭代对象的映射:Freemarker中的列表
在Freemarker的代码是:
<#list subscriptionsWithPiNotices?keys as s>
${s.title}
<#list subscriptionsWithPiNotices[s] as piNotice>
Autoritate contractanta: ${piNotice.contractingAuthorityName}
.
.
</#list>
</#list>
如果我从第二列表(< #list subscriptionsWithPiNotices [秒]作为piNotice>)所有的工作除去迭代(即遍历映射键,但是当我添加第二个部分,试图遍历地图的价值,我得到一个空/缺失异常
FreeMarker template error: The following has evaluated to null or missing:
==> subscriptionsWithPiNotices [S] [模板“SEAP订阅快讯.ftl”在第21行,第16栏第]
提示:如果发生故障的表达已知是合法空/缺少, 要么指定与myOptionalVar myDefault的默认值,或使用 <的#if myOptionalVar ??>时,本! < #else>失踪时。 (这些 仅覆盖表达的最后步骤;以覆盖整个 表达,使用parenthessis:(myOptionVar.foo)myDefault, (myOptionVar.foo)??
的失败指令(FTL堆栈跟踪)! :
==> #list subscriptionsWithPiNotices [s] a ... [在模板“seap-subscription-newsletter.ftl”第21行,第9列] #list subscriptionsWithPiNotices?keys ... [in template“ seap-subscription-newsletter.ftl“在第18行第5列]
我再说一遍, hMap,它只有一个关键字,其中一个ArrayList里面有一个项目。所以没有理由报告一个空,是吗?
这是FTL的年龄问题,它没有'Map'类型。它有一个“散列”类型,但只支持“字符串”键(用于子变量)。然后'BeansWrapper'静静地将'toString()'s's'作为'[]'需要一个字符串,然后它当然不会找到'Map'条目......你会发现一些关于可能的SO答案解决方法。 – ddekany
密钥的类型是什么? –