Passar parâmetros de uma view para outra view
22/07/2010 00:00
0
Olá Pessoal, tenho a seguinte dúvida:

Meu controller tem uma action que recebe um parâmetro, mês/ano, por exemplo: 01/2010.

Nesta action realizo uma consulta, com base neste parâmetro, onde retorno uma lista de clientes que tem pedidos em 01/2010, que é o exemplo citado acima.

Na view que contém o resultado da consulta tenho um <g:link> que chama uma outra action que irá detalhar os pedidos do cliente selecionado.

Utilizando ${params} consigo pegar o mês/ano que foi passado para a primeira action e repassá-la para a segunda action, mas o problema é que preciso acrescentar ao ${params} o id do cliente pois a consulta necessita do id e do mês/ano.

Como poderia fazer isso ?

Atenciosamente,

Evandro Abreu.
Tags: Grails


0
Bastas vc colocar

params.id_cliente = valor do id do cliente;

ou

params[&quot;chave do parametro usado para passar o id do cliente&quot;] = valor;


acredito que é isso que você quer.
22/07/2010 00:00


0
Olá igorhara, obrigado por responder. Mas veja o seguinte: se a operação fosse no controller tudo bem, mas desejo fazer isso na view.

Se eu faço isso:
<g:link action=&quot;detalhaPedido&quot; params=[&quot;cdCliente&quot;: ${pedidos.cdCliente}]></g:link> a view carrega sem problemas, mas a url que deveria ter algo do tipo /detalhaPedido?cdCliente=XX&amp;periodo=01/2010 fica simplesmente /detalhaPedido

se eu faço isso:
<g:link action=&quot;detalhaPedido&quot; params=&quot;[cdCliente: ${pedidos.cdCliente}]&quot;></g:link>
recebo a seguinte mensagem de erro:
Error evaluating expression [[cdCliente: ${pedidos.cdCliente}]]

só mais um detalhe, estou utilizando esta tag: <g:each in=&quot;${listaPedidos}&quot; status=&quot;i&quot; var=&quot;pedidos&quot;> para percorrer a lista e montar minha <table> dinamicamente.

Agradeço por qualquer ajuda.

Atenciosamente,

Evandro Abreu
[quote=&quot;igorhara&quot;]Bastas vc colocar

params.id_cliente = valor do id do cliente;

ou

params[&quot;chave do parametro usado para passar o id do cliente&quot;] = valor;


acredito que é isso que você quer.[/quote]
22/07/2010 00:00


0
Evandro, tente assim sem as chaves:

<g&#58;link action=&quot;detalhaPedido&quot; params=&quot;[cdCliente&#58; pedidos.cdCliente]&quot;></g&#58;link>
22/07/2010 00:00


0
olá lucasDie, obrigado pela resposta. E sim, funcionou!! mas ainda resta a seguinte questão:

Meu controller tenho duas actions. A primeira recebe um parâmetro, mês/ano, por exemplo: 01/2010 e retorna o uma view com o resultado da consulta.

Nesta view, tenho um <g:link action=&quot;detalhaPedido&quot; params=&quot;[cdCliente: pedidos.cdCliente]&quot;></g:link> que chama uma outra action que irá detalhar os pedidos do cliente selecionado.

Utilizando ${params} nesta view consigo pegar o mês/ano que foi passado para a primeira action e repassá-la para a segunda action, mas o problema é que preciso acrescentar ao ${params} o id do cliente pois a consulta necessita do id e do mês/ano.

se eu fizer isso: <g:link action=&quot;detalhaPedido&quot; params=&quot;${params}&quot;></g:link> eu consigo repassar para a segunda action o parâmetro mês/ano que foi submetido para a primeira action.

mas eu preciso na verdade de algo mais ou menos assim:
<g:link action=&quot;detalhaPedido&quot; params=&quot;${params}+cdCliente: pedidos.cdCliente&quot;></g:link>

para poder passar o mês/ano e o código do cliente para a action.

Como poderia fazer isso ?


[quote=&quot;lucasDie&quot;]Evandro, tente assim sem as chaves:

<g&#58;link action=&quot;detalhaPedido&quot; params=&quot;[cdCliente&#58; pedidos.cdCliente]&quot;></g&#58;link>
[/quote]
23/07/2010 00:00


0
Depois de testar várias combinações tentei esta aqui e funfou <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

<g:link action=&quot;detalhaPedido&quot; params=&quot;[mesAno:params.mesAno,cdCliente:pedidos.cdCliente]&quot;>

Obrigado àqueles que tentaram me ajudar.

Atenciosamente,

Evandro Abreu.

[quote=&quot;abreuevandro&quot;]Olá Pessoal, tenho a seguinte dúvida:

Meu controller tem uma action que recebe um parâmetro, mês/ano, por exemplo: 01/2010.

Nesta action realizo uma consulta, com base neste parâmetro, onde retorno uma lista de clientes que tem pedidos em 01/2010, que é o exemplo citado acima.

Na view que contém o resultado da consulta tenho um <g:link> que chama uma outra action que irá detalhar os pedidos do cliente selecionado.

Utilizando ${params} consigo pegar o mês/ano que foi passado para a primeira action e repassá-la para a segunda action, mas o problema é que preciso acrescentar ao ${params} o id do cliente pois a consulta necessita do id e do mês/ano.

Como poderia fazer isso ?

Atenciosamente,

Evandro Abreu.[/quote]
23/07/2010 00:00


0
Evandro, acho que pelo fato do params ser um Map &quot;dinâmico?&quot;, pode-se facilmente adicionar as variáveis a ele, se o objeto na chave que passou não existe, ele cria, se existe, ele sobrescreve, é simples mas bem legal. E no caso era só a sintaxe que estava errada mesmo.
23/07/2010 00:00



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