Senhores percebi no grails (acho que é do groovy mesmo) um comportamento estranho:
Suponha que exista um Array chamado montadoras, que refere-se as marcas (montadoras) e para cada marca existe um array de modelos (de carros). Inventei isto agora :lol:
montadoras.each{ montadora ->
println montadora.getClass().name
println montadora[0].getClass().name
}
O resultado é
java.util.ArrayList
br.com.fausto.blabla.Montadora
Ou seja, quando ele itera pela colecao, cada item dela não é o objeto contido e sim um outro array de um item só, este item sendo o objeto esperado (montadora). Ao que parece o groovy/grails resolve essa questão sozinho p/ o usuário. Só que quando vc itera pelo segundo array (modelos) passa a ser necessário indicar a posicao.
Nao funciona:
montadoras.each{ montadora ->
montadora.each{ modelo->
println modelo.nome
}
}
Tem que ser assim:
montadoras.each{ montadora ->
montadora[0].each{ modelo->
println modelo.nome
}
}
O mesmo ocorre no gsp(jsp), na tag g:each.
Bizarro nao? :shock: