我正在尝试使用来自 Freemarker 的 com.google.common.collect.Multimap
在 Multimap 中,对于 map 中的每个键,您都会返回 Collection。
我尝试了以下方法,但没有用:
Java:
context.put("itemsByCategory", itemsByCategory);
自由标记:
<#list exclusiveItems?keys as cat>
${cat}<br/>
<#assign items = exclusiveItems[cat]>
<#list items as item>
${item.id}
</#list>
</#list>
我得到以下异常。它似乎将 Items 视为标量,尽管它实际上是一个 Collection。
?size is unsupported for: freemarker.ext.beans.SimpleMethodModel
The problematic instruction:
----------
==> list items as item [on line 61, column 49 in email/foo/foo-html.ftl]
----------
Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: ?size is unsupportefor:freemarker.ext.beans.SimpleMethodModel
最佳答案
我找到了一个有效的解决方案。
我没有像示例中那样传入 Multimap 实例(“itemsByCategory”),而是发现将 Multimap 转换为原始 Map> 然后使用它与上面的 FreeMarker 代码段保持不变。
希望这对某人有帮助。
关于java - Freemarker:如何使用 Multimap(或列表 map ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7902912/