You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java嵌套Map在FreeMarker中遍历获取路径的问题

解决FreeMarker遍历嵌套Map获取路径的问题

嘿,我来帮你搞定这个问题!你看到的错误应该是因为v是TreeMap类型,FreeMarker没法直接把它转换成字符串输出,所以抛出了类似v must be convertible to string, but it's a TreeMap的截断提示(就是你看到的“v mu...”)。咱们得深入嵌套的Map结构里去拿路径,具体写法看你的TreeMap结构:


情况1:每个TreeMap的键是分类标识,值是路径

如果你的TreeMap是{分类名: 路径}的结构,那需要嵌套遍历外层Map的values,再遍历内层TreeMap的键值对:

<#list CategoriesDocuments?values as categoryTree>
    <!-- 遍历每个分类TreeMap的键值对 -->
    <#list categoryTree?entry_set as entry>
        分类:${entry.key},对应的路径:${entry.value}
    </#list>
</#list>

情况2:只需要所有路径,不管TreeMap里的键

如果你的目标只是把所有路径都取出来,不用管分类键,那可以直接遍历内层TreeMap的values:

<#list CategoriesDocuments?values as categoryTree>
    <#list categoryTree?values as filePath>
        当前路径:${filePath}
    </#list>
</#list>

调试小技巧

要是你不确定嵌套结构到底是什么样的,可以先用?debug指令打印完整的对象信息,方便你理清层级:

${CategoriesDocuments?debug}

内容的提问来源于stack exchange,提问作者user7889679

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:38:58