2010-03-27 8 views
0

Dans un contrôleur, j'ai rempli une carte contenant une chaîne comme clé et une liste comme valeur; dans le gsp, j'essaie de leur montrer comme ceci:Problème de carte lors de la transmission du modèle à grails

<g:each in="${sector}" var="entry" > 
    <br/>${entry.key}<br/> 
    <g:each in="${entry.value}" var="item" > 
    ${item.name}<br/> 
    </g:each> 
</g:each> 

Le problème est que l'article est considéré comme une chaîne, donc je reçois l'exception

Error 500: Error evaluating expression [item.name] on line [11]: 
groovy.lang.MissingPropertyException: No such property: name for class: 
java.lang.String 

Tous les conseils sur la façon de le corriger autre que faire la recherche pour l'élément explicitement dans le gsp?

+0

Etes-vous sûr que votre code est correct? L'exception levée est "No such property: nombre for class ..". Qu'est-ce que le nombre? Pour plus d'informations pour vous aider, pourriez-vous imprimer le résultat de $ {item}? – fabien7474

+0

désolé à ce sujet, je les versions mixtes, mais l'erreur est la même – xain

+0

@ fabien7474: nombre est espagnol pour le nom –

Répondre

0

J'ai fait le POC qui fonctionne très bien pour moi

class Item{ 
    String name 
} 

Liste des articles = [nouvel article (nom: "ordinateur portable", nouvel article (nom: "souris")]

carte secteur = [:]

sector.manager = articles

sector.manager.each {item->

println item.name 

}

Même si cela ne fonctionne pas, essayez de déclarer le secteur de la carte comme

Carte < String, Liste < article>> Secteur = [:]

+0

Merci pour votre réponse, mais le problème se produit dans la vue avec les balises gsp, pas dans le contrôleur. – xain

Questions connexes