来自Map <string,list <string =“”>&gt;的Velocity表

时间:2017-10-06 13:48:52

标签: java list dictionary foreach velocity

我想在Velocity模板中创建一个表,它从Map<String, List<String>>获取数据。我尝试使用嵌套的foreach循环,但由于某种原因它不起作用(即使数据存在也是空表)。

将数据添加到我的模型

model.put("downloaded", holder.getDownloadedFiles());

这会添加如上所述的地图。

我的模板:

<table >
<tr>
    <th style="width:150px">Subsystem</th>
    <th style="width:500px">Filename</th>
</tr>

#foreach( $system in $downloaded.keySet)
#foreach($file in ${downloaded.get($system)})
    <tr>
    #if($foreach.count == 1) ##do only once
        <td rowspan=$downloaded.get($system).size()>$system</td>
    #end
        <td>$file</td>
    </tr>

#end
#end
</table>

现在我很高兴,有一个这样的表(键应该是多个列上的1个单元格):

key    value1
       value2
       value3
       value4
key2   value1
       value2
       value3
       value4

我是否正确访问变量并正确调用方法?

1 个答案:

答案 0 :(得分:2)

而不是

#foreach( $system in $downloaded.keySet)

对于外循环,你应该使用

#foreach( $system in $downloaded.keySet())