2015-08-25 1 views

Répondre

0
render

accepte une carte. Dans votre contrôleur, fournissez le nom de la vue que vous voulez afficher et une carte modèle contenant vos données, puis vous pouvez accéder directement au mappage du modèle sur votre gsp.

def map = [name: "akshay"] 
def name_map = [full_name: map] //map 
def list = ["c", "c++", "java"] //list 

render view: 'index', model: [nameMap: name_map, langList: list] 

Dans votre gsp, itérer sur la liste:

<g:each in="${langList}" status="index" var="lang"> 
    ${lang} 
</g:each> 

et itérer sur carte de carte:

<g:each in="${nameMap}" status="index" var="fullNameMap"> 
    ${fullNameMap.key} 
    <g:each in="${fullNameMap.value}" status="subIndex" var="map"> 
     ${map.key} 
     ${map.value} 
    </g:each> 
</g:each> 

également un conseil, si vous connaissez le type de données une variable à l'avance puis utilisez le type de données au lieu de def.

+0

Merci Sandeep. Ça marche. Et merci aussi pour vos conseils. –

+0

l'o/p est. Nom complet akshay c C++ java –

+0

Ce que je ne suis pas d'accord n'utilise pas 'def'. Voici pourquoi: 'def map1 = [nom: 'akshay'] Map map2 = [nom: 'akshay'] def list1 = [" c "," C++ "," java "] Liste liste2 = [" c », "C++", "java"] assertion map1.getClass() == LinkedHashMap assertion map2.getClass() == LinkedHashMap assertion list1.class == ArrayList assertion list2.class == ArrayList' –