Ajuda com o for e gsp
22/05/2013 18:35
0

def buscarVagas = BuscarVagas.findAll() //Busca o campus e cargos na tabela
def pegaVaga
for(busca in buscarVagas){
try{

if (busca.cargo == buscarChefe.cargo && busca.campus != buscarChefe.campus){ /
pegaVaga = busca.campus // dentro desse if deverá ser retornado os campus que são diferentes do campus do chefe logado e que tenha o msm cargo que ele
print pegaVaga //imprime os valores



}
}catch(Exception e) {

log.error "Não existe vaga $e.message", e
flash.message = "Não existe vaga pra sua Área!"

}
}
[pegavaga:pegaVaga]


O código me retorna o que preciso qndo peço pra imprimir na linha de comando, porém quando passo pra gsp ele só mostra um campus, msm tendo mais.
Como faço pra chamar no <g:select> os dados que estão dentro do meu if??? Já tentei de várias maneiras e não consegui...Preciso urgentemente de ajuda, por favor!
Tags: gsp, select, for , grails, ajuda


0
Olá, Joanna.

Amiga, pelo que percebi seu objeto "pegaVaga" não é uma coleção, por isso não importa quantos loops você dá no "for", ele ao final só terá um valor.

Se eu entendi o que quer, eu faria assim:

def pegaVaga = [] // inicie ele como uma lista vazia

Dai, dentro do if do for:
pegaVaga += busca.campus // adicionando elemento na lista


Pronto, assim teu "pegaVaga" poderá ser usado num <g:select> pois conterá vários valores.


0
Bom dia Joanna. Complementando o que o Yoshi disse...

Para saber se tem uma lista faça o seguinte teste.


assert pegaVaga instanceof List


No teu findAll, pode já trazer uma criteria dele, por exemplo:



def vagas = BuscarVagas.findAll {
and {
eq("cargo", "${buscarChefe.cargo}")
ne("campus", "${buscarChefe.campus}")
}

}

if(!vagas.isEmpty()){
return [pegavaga: vagas]

flash.message = 'minha.mensagem.personalizada'
return [pegavaga: vagas]



Assim já vai ter uma lista já populada corretamente e nem precisa aplicar try/catch pois não vai percorrer a lista.


0
Esqueci de um detalhe. Como vc, ao menos me parece, quer o campus apenas complemente abaixo do and uma projection.

[code]
and {
(...)
}
projection {
property("campus")
}

Espero que tenha ajudado.

Boa sorte com o projeto.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto