[RESOLVIDO] Popular List - JSP - VRaptor

Olá Galera, bom dia!

Tenho uma classe Cliente, essa classe tem uma lista de contatos

private List<Contato> contatos;

A minha dúvida é como eu populo essa lista quando o Form for enviado.

Tentei fazer assim, mas não deu certo.

<input type="text" name="cliente.contatos.contato.idContato" value=""/>
<input type="text" name="cliente.contatos.contato.nome" value="Bruno"/>
<input type="text" name="cliente.contatos.contato.email" value="exemplo@exemplo.com.br"/>

Tentei desta maneira, mas não deu certo também

<input type="text" name="cliente.contatos[].contato.idContato" value=""/>
<input type="text" name="cliente.contatos[].contato.nome" value="Bruno"/>
<input type="text" name="cliente.contatos[].contato.email" value="exemplo@exemplo.com.br"/>

Mas, é lançado a seguinte mensagem

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.nextrans.erp.modelo.bean.Contato

Alguém pode me dar uma dica?

Desde já agradeço!

O problema ai não está necessariamente na List do VRaptor e sim na hora de persistência do Hibernate.

Dá um olhada no blog da Caelum que tem um post fantástico sobre esse famoso erro http://blog.caelum.com.br/transientobjectexception-lazyinitializationexception-e-outras-famosas-do-hibernate/

Espero ter ajudado

Jair, value cara, o post ajudou sim, esclareceu algumas coisas!

Mas cara, acho que tenho dois problemas agora então, mas, primeiro tenho que resolver o problema no JSP.
Acredito que as duas formas que fiz estão erradas.

Pode me dizer como seria a maneira correta?

Obrigado!

se as tres propriedades dizem respeito ao mesmo objeto, vc precisa gerar os inputs com índices:

<input type="text" name="cliente.contatos[0].idContato" value=""/>  
<input type="text" name="cliente.contatos[0].nome" value="Bruno"/>  
<input type="text" name="cliente.contatos[0].email" value="exemplo@exemplo.com.br"/>

<input type="text" name="cliente.contatos[1].idContato" value=""/>  
<input type="text" name="cliente.contatos[1].nome" value="Bruno"/>  
<input type="text" name="cliente.contatos[1].email" value="exemplo@exemplo.com.br"/>

....

Valeu Lucas! Resolveu :slight_smile:

Obrigado Galera!