Fórum Instanceof para editar cliente. PF ou PJ #489791
22/08/2014
0
Bom dia Galera,
Tenho classe pessoaFisica e jurídica que extends de pessoa. Para editar o cliente selecionado estou usando instanceof
Esse método está na classe pessoa , onde existe outro método que lista. Ao clicar para editar o cliente chamando métodos acima, os dados atuais não é recuperado na pagina de edição , campo em em branco. Está funcionando para identificar o tipo do cliente e carregar a pagina adequada mas não recupera os dados.
Obrigado desde já.
Abaixo parte do código onde o cliente é listado, e chamando método.
Tenho classe pessoaFisica e jurídica que extends de pessoa. Para editar o cliente selecionado estou usando instanceof
public String editarPessoa(Pessoa p) {
if (p instanceof PessoaFisica) {
pessoaFisica = (PessoaFisica) p;
return "editarPessoaFisica";
} else {
pessoaJuridica = (PessoaJuridica) p;
return "editarPessoaJuridica";
}
}
if (p instanceof PessoaFisica) {
pessoaFisica = (PessoaFisica) p;
return "editarPessoaFisica";
} else {
pessoaJuridica = (PessoaJuridica) p;
return "editarPessoaJuridica";
}
}
Esse método está na classe pessoa , onde existe outro método que lista. Ao clicar para editar o cliente chamando métodos acima, os dados atuais não é recuperado na pagina de edição , campo em em branco. Está funcionando para identificar o tipo do cliente e carregar a pagina adequada mas não recupera os dados.
Obrigado desde já.
Abaixo parte do código onde o cliente é listado, e chamando método.
<p:dataTable id="processo" value="#{pessoaBean.listarPessoa()}" var="pessoa" widgetVar="PESSOA" paginator="true" rows="20"
paginatorTemplate=" "
rowsPerPageTemplate="30,50,100" style=" font-size: small" >
paginatorTemplate=" "
rowsPerPageTemplate="30,50,100" style=" font-size: small" >
<p:column>
<f:facet name="header">
<h:outputText value="Editar" />
</f:facet>
<p:commandLink value="Editar" action="#{pessoaBean.editarPessoa(pessoa)}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
<p:commandLink value="Excluir" action="#{pessoaBean.removePessoa(pessoa)}" update="@all"
onclick="if (!confirm('Deseja excluir o cliente: #{pessoa.nome}?'))
return false;" />
</p:column>
<f:facet name="header">
<h:outputText value="Editar" />
</f:facet>
<p:commandLink value="Editar" action="#{pessoaBean.editarPessoa(pessoa)}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
<p:commandLink value="Excluir" action="#{pessoaBean.removePessoa(pessoa)}" update="@all"
onclick="if (!confirm('Deseja excluir o cliente: #{pessoa.nome}?'))
return false;" />
</p:column>
Sidnei Ferreira
Curtir tópico
+ 0
Responder
Posts
22/08/2014
Ronaldo Lanhellas
Mostre como está fazendo nas páginas de edições ( editarPessoaFisica e editarPessoaJuridica)
Responder
Gostei + 0
23/08/2014
Sidnei Ferreira
Ronaldo, estava com erro na pagina de editarCliente. resolvi uma parte. Está carregando as informações na pagina como queria, mas está dando erro ao salvar. vou postar o codigo da pagina de edição.
erro
No ben pessoa. tem o método update, o DAO está assim:
método
Att.,
<h:panelGrid columns="2" >
<h:outputLabel for="id" value="ID" />
<h:outputText value="#{pessoaBean.pessoaFisica.id}" />
<h:outputLabel for="nome" value="Nome:*" style="font-size: large" />
<p:inputText id="nome" label="nome" value="#{pessoaBean.pessoaFisica.nome}"
size="50" autocomplete="true" required="true" requiredMessage="Campo Nome não preenchido!" >
</p:inputText>
<h:outputLabel for="rg" value="RG:*" style="font-size: large"/>
<p:inputMask id="rg" label="rg" mask="99.999.999-9"
value="#{pessoaBean.pessoaFisica.rg}" size="12"
required="true" requiredMessage="Campo RG não preenchido!" >
</p:inputMask>
<h:outputLabel for="cpf" value="CPF*" style="font-size: large" />
<p:inputMask id="cpf" label="cpf" mask="999.999.999-99"
value="#{pessoaBean.pessoaFisica.cpf}" size="14" required="true"
requiredMessage="Campo CPF não preenchido!" >
</p:inputMask>
<h:outputLabel for="datanascimento" value="Data de Nasc.:*" style="font-size: large"/>
<p:inputMask id="dataAbertura" label="Data de Abertura"
mask="99/99/9999" value="#{pessoaBean.pessoaFisica.idade}" size="10"
required="true" requiredMessage="Campo Data Nascimento não preenchido!" >
</p:inputMask>
<h:outputLabel for="estadoCivil" value="Estado Civil:*" style="font-size: large" />
<p:inputText id="estadoCivil" label="Estado Civil" value="#{pessoaBean.pessoaFisica.estadoCivil}"
size="20" required="true" requiredMessage="Campo Estado Civil não preenchido!" >
</p:inputText>
<h:outputLabel for="profisao" value="Profissão:*" style="font-size: large" />
<p:inputText id="profisao" label="Prosisao" value="#{pessoaBean.pessoaFisica.profissao}"
required="true" requiredMessage="Campo Profissão não preenchido!" >
</p:inputText>
<h:outputLabel for="email" value="E-mail:" style="font-size: large"/>
<p:inputText id="email" label="E-mail" value="#{pessoaBean.pessoaFisica.email}" size="50"
required ="true" requiredMessage="Digite seu Email"
validatorMessage="Email inválido!" >
<f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+"/></p:inputText>
<h:outputLabel for="nomepai" value="Nome Pai:*" style="font-size: large" />
<p:inputText id="nomedopai" label="nomepai" value="#{pessoaBean.pessoaFisica.nomePai}" size="50"
required="true" requiredMessage="Campo Nome do Pai não preenchido!" >
</p:inputText>
<h:outputLabel for="nomemae" value="Nome da Mãe:*" style="font-size: large" />
<p:inputText id="mae" label="nomepai" value="#{pessoaBean.pessoaFisica.nomeMae}" size="50"
required="true" requiredMessage="Campo Nome da Mãe não preenchido!" >
</p:inputText>
<h:outputLabel for="cep" value="CEP:" style="font-size: large"/>
<p:inputMask id="cep" mask="99999-999" value="#{pessoaBean.pessoaFisica.cep}" />
<h:outputLabel value="" style="font-size: large"/>
<p:commandButton value="Buscar">
<f:ajax listener="#{pessoaJuridicaBean.encontraCEP}" execute="@form" render="@form"
event="click" />
</p:commandButton>
<h:outputLabel value="Rua: " style="font-size: large" />
<p:inputText size="40" value="#{pessoaBean.pessoaFisica.logradouro}" />
<h:outputLabel value="N°: " style="font-size: large"/>
<p:inputText size="5" value="#{pessoaBean.pessoaFisica.numero}" />
<h:outputLabel value="UF: " style="font-size: large"/>
<p:inputText size="5" value="#{pessoaBean.pessoaFisica.estado}" />
<h:outputLabel value="Cidade: " style="font-size: large"/>
<p:inputText size="50" value="#{pessoaBean.pessoaFisica.cidade}" />
<h:outputLabel value="Bairro: " style="font-size: large"/>
<p:inputText size="25" value="#{pessoaBean.pessoaFisica.bairro}" />
<h:outputLabel for="telefone" value="Telefone Res.:" style="font-size: large"/>
<p:inputMask id="telefone" label="Telefone" mask="(99)-9999-9999" value="#{pessoaBean.pessoaFisica.telefone1}" >
</p:inputMask>
<h:outputLabel for="telefone2" value="Telefone Comer.:" style="font-size: large"/>
<p:inputMask id="telefone2" label="Telefone2" mask="(99)-9999-9999" value="#{pessoaBean.pessoaFisica.telefone2}" >
</p:inputMask>
<h:outputLabel for="celular" value="Celular:" style="font-size: large"/>
<p:inputMask id="celular" label="Celular" mask="(99)-99999-9999" value="#{pessoaBean.pessoaFisica.celular}" >
</p:inputMask>
</h:panelGrid>
<p:commandButton value="Salvar" action="#{pessoaBean.altualizarPessoa}" ajax="false" />
<p:commandButton value="Voltar" action="listarCliente" ajax="false" immediate="true" />
</p:panel>erro
java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
No ben pessoa. tem o método update, o DAO está assim:
public void atualizar(Pessoa ps) {
session = HibernateUtil.getSessionFactory().openSession();
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.saveOrUpdate(ps);
session.getTransaction().commit();
} finally {
session.close();
}
}método
public String altualizarPessoa() {
pessoaDAO.atualizar(pessoa);
return "listarCliente";
}Att.,
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)