2010-04-12 6 views
0

J'ai un service qui contient une carte:ArrayList et carte dans Grails

static Map cargosMap = ['1':'item1','2':'item 2','3':'item 3'] 

qui est retourné par une méthode au service:

static Map getCargos() { 
    [cargosMap] 
} 

Un contrôleur appelle cela comme ceci:

def mform = { 

    Map cargos = empService.getCargos() 

    [cargos:cargos] 
} 

Dans le gsp, je la sélection:

<g:select name="cg1" from="${cargos}" /> 

Mais je suis en train de l'exception:

Error 500: Executing action ....caused exception: 
    org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 
    ... 
    with class 'java.util.ArrayList' to class 
    'java.util.Map' 

Des indices? Merci

Répondre

3

Il me semble que vous enveloppez la carte dans une ArrayList dans getCargos(). Pourquoi ne pas simplement: static getCargos() { cargosMap }. Ou, mieux encore, renommez simplement cargosMap en cargos et Groovy créera le getter pour vous.