FreeMarker为每个键访问不同的MultiMap值

时间:2015-04-24 13:57:38

标签: java freemarker

我想在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]

非常感谢帮助:)

1 个答案:

答案 0 :(得分:0)

感谢ddekany的回复.. :) 但是,我可以找到答案,这是自由标记代码中的错误。我按键重复

<#list taskList?keys as taskType>

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

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

我想我的代码中缺少了assign标签。在访问键的值时。 希望这会对某人有所帮助。