Wie übergeben Sie eine Liste der Karten, um eine GSP-Seite anzeigen und Durchlaufen Sie es

Sagen wir, wir wollen zeigen, Informationen über die Dateien in einem Ordner. Wir haben die Informationen speichern, die jeder Datei in einer Karte. Dann fügen Sie diese Karten in eine Liste.

Controller-action:

def show() {

    List results = new ArrayList();

    File dir = getDir(params.id);

    if (dir.exists()) {
        dir.eachFile { 

        Map fileInformation= new java.util.LinkedHashMap()

        fileInformation.put("name", it.getName());
        fileInformation.put("size", it.length());
        fileInformation.put("path", it.getAbsolutePath() );

        results.add(fileInformation);

        }
    }

    [filesOfFolderData: result]
}

Vielleicht, das ist mein bestes versucht, um die Daten in der Ansicht (ich folgte dem Ansatz der hier mit kein Glück):

<g:each in="${filesOfFolderData}">

    <p> it: ${it}</p>
    <p> it.properties: ${it.properties} </p>

    <g:each var="propertyEntry" in="${it.properties}">

        <p> propertyEntry.key: ${propertyEntry.key} </p>
        <p> propertyEntry.value: ${propertyEntry.value} </p>
        <p> propertyEntry.value.name: ${propertyEntry.value} </p>           

    </g:each>

</g:each>

Dies ist, was der Internet-Browser zeigt (Hinweis: die erste Zeile der Resultat könnte ein wenig anders, wie ich den code vereinfachen, so dass ich Gast, das Ergebnis in der Basis des realen Ergebnis meiner Fall):

it: [{name=wololo1, size=35, path=c:\}, {name=wololo2, size=35, path=c:\}]

it.properties: {class=class java.util.ArrayList, empty=false}

propertyEntry.key: class

propertyEntry.value: class java.util.ArrayList

propertyEntry.value.name: class java.util.ArrayList

propertyEntry.key: empty

propertyEntry.value: false

propertyEntry.value.name: false 

Wie könnten wir die Liste Durchlaufen?

InformationsquelleAutor chelder | 2013-09-03
Schreibe einen Kommentar