Associar um relacionamento entre entidades no form

14 Aufrufe
Direkt zur ersten ungelesenen Nachricht

Silas Cardoso

ungelesen,
25.06.2015, 09:44:1525.06.15
an caelum-...@googlegroups.com
Bom dia pessoal, 

Tentei encontrar algo no tutorial e no google mas não encontrei, gostaria de saber se é possível setar uma entidade no próprio formulário. Eu tenho uma associação simples do tipo:

public class ClasseA (

//associação simples
private ClasseB classeB;

private String descricao;

}


Antes de abrir o form de A, no Controller eu localizo a instancia de B, e mando para o form de A. Até ai tudo bem, no form eu consigo acessar os valores da classeB e fazer algo do tipo:

<input type="hidden" name="classeB.id" value="${classeB.id}">

<input type="text" name="classeA.descricao" value="${classeA.descricao}">

Quando chamo o salvar do Controller, eu estou utilizando:

public void salvar(ClasseB b,  ClasseA a) {

//Se eu não fizer isso dá erro no JPA "detached error"
a
.setClasseB(daoClasseB.localizar(b.getId));

daoClasseA
.salvar(a);
}


Funciona, mas estou tentando seguir todas as convenções, consegui fazer funcionar seguindo meu instinto e isso me pareceu "gambiarra". Tem um método mais certo de fazer isso? Eu já tentei fazer a associação direto no form mas não deu certo.



<input type="hidden" name="classeA.classeB" value="${classeB}">


Pareceu algo intuitivo a fazer, já que tenho o objeto da classeB no form e consigo acessá-lo, porque não associá-lo diretamente na classe A, mas não funcionou. =\


José Filipe Lyra

ungelesen,
25.06.2015, 10:23:5025.06.15
an caelum-...@googlegroups.com
Oi Silas!

Você chegou a tentar <input type="hidden" name="classeA.classeB.id" value="${classeB.id}">?

Outra coisa, caso vc receba um tenha enviado para o html um objeto ClasseA, faça assim: <input type="hidden" name="classeA.classeB.id" value="${classeA.classeB.id}">

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Allen antworten
Antwort an Autor
Weiterleiten
0 neue Nachrichten