Recuperar valor de objeto de instancia
21/01/2013 22:36
0
Boa noite!
Estou com um problema em um projeto da empresa. Eu tenho uma view com uma instancia, e esse objeto passa alguns dados para um template pela tag g:render, e esta tag está dentro de um g:each . ex:
<g:each in="${troInstance?.envolvidos}" var="item">
<g:render template="/envolvido/_formulario.gsp" model="[envolvidoInstance : item]" />
</g:each>
<g:each in="${troInstance?.materiais}" var ="item">
<g:render template="/material/_formulario.gsp" model="[materialInstance : item]" />
</g:each>

Agora, dentro do template formulario.gsp do material, eu preciso recuperar em uma combo os objetos informados no template do formulário dos envolvidos...Só que esses objeto ainda não estão persistidos, e como o g render so passa os dados na renderização não adiantaria eu passar a instancia do objeto troInstance ...
Algúem tem alguma ideia de como eu posso fazer para recuperar esses dados?
Obrigado
Tags: gsp, instancia, objeto, each , render


0
Opa, Thiago...

Tente fazer algo como o código abaixo:

<g:each in="${troInstance}" var="item">
<p>Materiais: ${item.materiais}</p>
<p>Envolvidos: ${item.envolvidos}</p>
</g:each>

Uma vez que você passa o objeto inteiro, vc recupera as propriedades na instância.
Acho que vai dar certo.
21/01/2013 23:03


0
E como e recarregaria a página com os valores?
Esta pagina é um formulário grande, dividido em abas... e eu só salvo no final...
Então em uma aba , eu informaria os envolvidos (troInstance.envolvidos), e na outra aba eu preciso recupera-los.. mesmo sem
ter persistido o objeto inteiro (troInstance)...
Estou com dificuldades nisso. Sou novato em grails
21/01/2013 23:30


0

Seria no Model, assim:

<g:render template="/material/_formulario.gsp" model="['materialInstance':${item.materiais}, 'envolvidoInstance':${item.envolvidos}]" />

E no seu template você precisa ter os beans de ambas as instâncias para recuperar os valores.

Não tenho como testar o código aqui, mas acho que funciona.

Abraços.
22/01/2013 09:49


0
Thiago, bom dia.

Seguinte: vc falou que os objeto ainda não estão persistidos. então isso me leva a pensar em 2 soluções, mas e claro isso vai depender de como vc esta fazendo ai:

1) Usando a gsp:

Para usar a tag g:render na gsp, seria necessário enviar o objeto troInstance para o controller e depois redirecionar para a gsp.

Isso pq o gsp e compilado quando é enviado para o browser. Digo isso pois os dados inseridos na gsp, ainda não foram inseridos no objeto troInstance. Eles só serão inseridos quando vc postar para o controller, mas vale lembrar que de repente vc terá que tratar na mão os dados novos inseridos.

2) Usando o JS:

Como os dados dos envolvidos já estão nos inputs, selects, ... vc pode obter eles na mão e copiar para a outra aba do seu formulário onde vc quer exibi-los.

Bem espero ter ajudado.
Abraços.
22/01/2013 11:55



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