【问题标题】:FreeMarker access distinct MultiMap Values per keyFreeMarker 每个键访问不同的 MultiMap 值
【发布时间】:2015-07-03 04:09:42
【问题描述】:

我想遍历 Freemarker 模板中的 MultiMap 并访问(显示)键及其不同的值(在这种情况下是对象):

这里的TaskType是一个字符串(不要误解)

 multiMap.put(TaskType.DHOLDING_TASK,Obj1);
    multiMap.put(TaskType.BTRADE_TASK,Obj2);
    multiMap.put(TaskType.ANONE,Obj3);
    multiMap.put(TaskType.DHOLDING_TASK,Obj4);
    multiMap.put(TaskType.CPRICE_TASK,Obj5);
    multiMap.put(TaskType.BTRADE_TASK,Obj6);
    multiMap.put(TaskType.ANONE,Obj7);
    multiMap.put(TaskType.CPRICE_TASK,Obj8);

MultiMap 的输出将如下所示:

{CPRICE_TASK=[Obj5, Obj8], ANONE=[Obj3, Obj7], BTRADE_TASK=[Obj2, Obj6], DHOLDING_TASK=[Obj1, Obj4]}

我的 freeMarker 代码:

<#assign taskKeys = multiMap?keys >
    <#list taskKeys as key>
        ${key} --It works fine till here :-)
    `taskList[key]   or taskList[key_values]---XXX both gives exception 

如何在列表中显示与此处的键关联的多值???

我需要在此处访问该对的值部分(即 RHS):CPRICE_TASK=[Obj5, Obj8]

非常感谢您的帮助:)

【问题讨论】:

  • 这个异常说明了什么?我猜该值是一个序列,不能自动转换为字符串。然后,你想做taskList[key]?join(', ')(或者#list吧)。

标签: java freemarker


【解决方案1】:

感谢 ddekany 的回复.. :) 但是,我可以找到答案,这是 freemarker 代码中的错误..我将键迭代为

<#list taskList?keys as taskType>

这很好..之后我应该遍历与键关联的列表(即多个值),因为它是一个 google multimap.Like:

<#assign values = taskList?values>
  <#list values[taskType_index] as task>

我想我在访问键值时缺少代码中的分配标签。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 1970-01-01
    • 2019-01-10
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多