Graal de l'itération en gsp vs accéder aux éléments de la Carte

Tout le contexte: je suis en train de traiter plusieurs fichiers à l'aide d'un graal de l'Application. Le code que j'affiche vient de la page de post-traitement où elle donne des informations sur les fichiers traités.

Mon sens initial était d'utiliser un code comme ceci:

    <table>
      <tr>
        <th>Parsed from Excel:</th>
        <th>Uploaded to DS:</th>
        <th>File Name:</th>
        <th>Size:</th>
      </tr>
      <tr>
      <g:each in="${fileContents}" var="item">
            <td>${item}</td>
      </g:each>
        <%-- 
        <td>${fileContents.ExcelRows?.encodeAsHTML()}</td>
        <td>${fileContents.policies?.encodeAsHTML()}</td>
        <td>${fileContents.originalFileName?.encodeAsHTML()}</td>
        <td>${fileContents.Size?.encodeAsHTML()}</td>
        --%>
      </tr>
    </table>

Maintenant, ce que je ne comprends pas, c'est pourquoi le contenu est affiché dans la <g:each boucle toujours les rapports key=value comme ExcelRows=14 que j'ai reçu dans un seul cas.

Lorsque je passe de commentaires (note de l' <%-- tag utilisé), il fonctionne exactement comme prévu. À partir de mon "ExcelRows" colonne, j'ai juste "14." Quel est le problème avec ma façon de penser que la <g:each boucle doit faire la même chose? Intuitivement, cela revient à For each item in fileContents
display item
.

Mon code de contrôleur:

def processFile = {
        def uploadedFile = request.getFile('excelFile')

//...ciselée

        def fileContents = [
            ExcelRows:"${ods.numberOfRows}",
            policies:"${ods.numberOfPolicies}",
            originalFileName: "${ods.originalFilename}", 
            Size:"${ods.size}"
            ]

        [fileContents:fileContents]
    }
u pourrait poster votre code de contrôleur? qui est de retour pour le modèle "fileContents" à votre avis?!
Neves a Ajouté pertinentes du code de contrôleur
donc, votre objet fileContents est une Carte pas une liste! c'est pourquoi l'affichage de la clé=valeur
Comment dois-je effectuer une itération sur un carte dans le spg-land w/o intégration groovy/code Java?
comment au sujet de la deuxième proposition de Rob Hruska ?? <g:chacun dans="${fileContents.les valeurs de()}" var="item"> <td>${item?.encodeAsHTML()}</td> </g:chaque>

OriginalL'auteur avgvstvs | 2011-08-09