Passagem de parametros para outra classe
04/01/2017 10:46
0
Quando passo eu consigo vê-lo na url porém na hora de recebe-lo ele me traz a insformação de null apenas para racFuncao e racServidor, o racTurmaId funciona:
 
na view turma:

<g:set var="idTurmaRac" value="${this.turma.id}"/>
<g:set var="servidorRac" value="${inscricaoInstance.servidor.nome}"/>
<g:set var="funcaoRac" value="${resultado.substring(1,resultado.size()-1)}"/>

<g:link action="rac" controller="inscricao" params="[racServidor: servidorRac, racTurmaId: idTurmaRac, racFuncao: funcaoRac]"><i
class="glyphicon glyphicon-search"></i> Relatório de avaliação de capacitação </g:link>

no controller inscricao:

def rac() {
def rac1 = Turma.get(params.racFuncao)
println(rac1)

def rac = Turma.get(params.racTurmaId)
println(rac)

def rac2 = Turma.get(params.racServidor)
println(rac2)

[funcaoRac: rac1, idTurmaRac: rac, servidorRac: rac2]
}

na view rac de inscricao:

${servidorRac}
${funcaoRac}

Só esse último funciona
${idTurmaRac}

na URL fica :
inscricao/rac?racServidor=Flávia+Silva&racTurmaId=9&racFuncao=Auxiliar+STI


Esse é o resultado:

null
siscapacitacao.Turma : 9
null

O do meio é o id que consigo pegar na outra view
Tags: Grails


1
def rac1 = Turma.get(params.racFuncao)
def rac = Turma.get(params.racTurmaId)
def rac2 = Turma.get(params.racServidor)

Pelo que observei no seu exemplo, racFuncao e racServidor são strings. enquanto racTurmaId é numerico. Porém você utiliza todos eles em Turma.get(...), acontece que este método busca pelo id da classe.
Provavelmente no caso de rac1 e rac2 o que você realmente quer fazer é Turma.findByAlgumaPropriedadeQualquer(racFuncao)


0
Ainda não, pois o resultado que esta no "params" é uma consulta que preciso continua-lá , como por exemplo envio o ID do servidor, para que quando eu receber o ID, eu possa pegar o nome, endereço, outras informações que estão na classe.
Não sei se o get esta conseguindo buscar meu resultado pois quando coloco assim:

def rac1 = Turma.get(params.racFuncao)
println(params.racFuncao)
println(rac1)

o primeiro println imprimi o valor que quero e o segundo imprimi null, porém o resultado vai como string, ai não consigo percorrer ele.

Colocando assim também não funciona:

Turma rac1 = Turma.get(params.racFuncao)
println(params.racFuncao)
println(rac1)


1
A única coisa que você pode passar para o get() é o id do objeto que vc quer buscar, não adianta passar outros atributos que ele não vai saber procurar. Se quer buscar por outros atributos, utilize os dynamic finders

Se possivel descreva melhor o que quer fazer


0
Entendi agora, pelo ID consigo mesmo, obrigada



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