Dá uma olhada quais parametros estão indo na requisição, tipo num firebug ou developer tools, e veja se algum deles termina em um Endereço endereco ao invés da String endereco
H
hcdute
Desculpe a ignorância mais é que eu comecei programa web agora então eu instalei o Firebug mas não sei como faço pra ver os parâmetros na requisição
L
Lucas_Cavalcanti
tem a aba Net (ou Rede se estiver em portugues). Faça a requisição, abra a Net e clique na requisição. Lá vai aparecer os cabeçalhos e os parametros.
vc tem converter pra Pessoa? Algum dos parâmetross que terminam em .endereco são um Endereço ao invés de String?
H
hcdute
esse é o converter de pessoa
public class PessoaConverter implements Converter {
@OverridepublicPessoaconvert(Stringvalor,Class<?extendsPessoa>arg1,ResourceBundlearg2){System.out.println(valor);if("PessoaFisica".equals(valor))returnnewPessoaFisica();elseif("PessoaJuridica".equals(valor))return(Pessoa)newPessoaJuridica();elsethrownewRuntimeException("Tipo nao pode ser diferente de PessoaFisica ou PessoaJuridica");}
}
Os parâmetros que terminam em endereço são String e tmb já tentei mudar o nome de endereço para logradouro da o mesmo erro.
L
Lucas_Cavalcanti
pode me mandar o erro direitinho, com a stacktrace, por favor?
se eu colocar o Endereco dentro de cliente funciona normal mas se deixo ele dentro da class Pessoa da o erro.
L
Lucas_Cavalcanti
se vc não passa nenhum dado de endereço no request funciona? tenta ir tirando os inputs até ver o problemático.
tenta receber direto Pessoa no controller (e mudar os parametros de acordo)
Heranças adicionam complexidades bem grandes na hora de criar os objetos, sempre aparece um caso em que não funciona =S A gente só precisa conseguir isolar pra conseguir resolver.
H
hcdute
Se eu tiro todos funciona.
Se eu tiro o cliente deixo a pessoa direto funciona tmb.
Se eu tiro a pessoa coloco o endereço na pessoa Funciona tmb.
Com todos os objetos mesmo deixando somente 1 campo do endereço não funciona
L
Lucas_Cavalcanti
Por enquanto o que vc pode fazer:
public void seuMetodoDoController(Cliente cliente, Pessoa pessoa) {
cliente.setPessoa(pessoa);
//resto da sua lógica
}
daí vc recebe os parametros de pessoa separadamente, que vc diz que funciona e depois vc só seta no cliente.
abre por favor uma issue sobre isso em:
H
hcdute
Blz vo tenta aqui.
Mais uma dúvida.
Dentro de Pessoa eu tenho uma List contato;
no Jsp tenho uma table e um botão “Adiciona Contato” que exibe um bootstrap modal, eu queria que toda vez que clica-se no botão, inserir uma linha na table e adicionar um contato na lista , Ai no final quando clicar no botão salvar ele salva o Cliente com Pessoa e seus respectivos contatos.
Ou seja como eu faço pra toda vez que ele clicar no botão inserir um Objeto contato em pessoa mas não persistir?
L
Lucas_Cavalcanti
pq vc não faz isso via javascript, só modificando o html?
é bem fácil fazer isso usando o JQuery, por exemplo.
daí é só gerar os nomes dos inputs com os índices da lista corretamente tipo “pessoa.contatos[0].propriedade”
H
hcdute
Ah Entendi posso colocar o Indice do Contato era isso mesmo que queria saber vlw
H
hcdute
Lucas fiz o teste eu me enganei tmb não funciona colocar direto pessoa.endereco da o mesmo erro.
Única forma que funciona é se eu jogar o endereço pra dentro do cliente.
H
hcdute
Olha eu inclui jar do ongl 3.0.5 e agora tá funcionando normal.
peraí… vc tá salvando um cliente novo, passando um monte de veiculos certo?
se sim, não vai dar pra vc setar o id do cliente no formulário… vc vai precisar salvar o cliente no banco e depois sair setando o cliente em cada um dos veículos e salvar os veículos.