2017-10-06 11 views
0

Je souhaite créer une table dans un modèle Velocity qui obtient les données d'un Map<String, List<String>>. Je l'ai essayé avec des boucles imbriquées foreach, mais pour une raison quelconque cela n'a pas fonctionné (table vide même si des données sont présentes).Table de vélocité de la carte <Chaîne, Liste <String>>

Ajout des données à mon modèle

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

cela ajoute une carte comme décrit ci-dessus.

mon modèle:

<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> 

Pour l'instant, je serais heureux, d'avoir une table comme celui-ci (la clé doit être de 1 cellule sur plusieurs colonnes):

key value1 
     value2 
     value3 
     value4 
key2 value1 
     value2 
     value3 
     value4 

Ai-je accéder à des variables droit et appeler les méthodes correctement?

+0

Où voulez-vous? –

+0

@MauricePerry table vide, mais ma carte est remplie – XtremeBaumer

+0

Vous avez défini "téléchargé" et référencé "téléchargé" –

Répondre

1

Au lieu de

#foreach($system in $downloaded.keySet) 

pour la boucle externe, vous devez utiliser

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