Fórum Cadastro de endereço #512621
04/03/2015
0
Olá pessoal!
Na página de cadastro de cliente da minha aplicação web, existe um botão, chamado "Novo Endereço", que faz uma chamada à página de cadastro de endereço que permite nserir um novo endereço para o cliente exibido na página de cadastro de cliente.
Acontece que, ao ser chamada a página de cadastro de endereço, o objeto cliente não está sendo pego. Como faço para carregar o objeto cliente para a página de cadastro de endereço para que ao gravar este novo endereço o código do cliente não esteja nulo? Não estou conseguindo fazer isso. Segue abaixo código das duas classes (Cliente, Endereco):
Na página de cadastro de cliente da minha aplicação web, existe um botão, chamado "Novo Endereço", que faz uma chamada à página de cadastro de endereço que permite nserir um novo endereço para o cliente exibido na página de cadastro de cliente.
Acontece que, ao ser chamada a página de cadastro de endereço, o objeto cliente não está sendo pego. Como faço para carregar o objeto cliente para a página de cadastro de endereço para que ao gravar este novo endereço o código do cliente não esteja nulo? Não estou conseguindo fazer isso. Segue abaixo código das duas classes (Cliente, Endereco):
@Entity
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
private Integer codigo;
private String nome;
private String cpf;
private String cnpj;
private String tipodoc;
private String numdoc;
private String orgaodoc;
private String numcnh;
private String categoriacnh;
private String observacao;
private Date datacadastro = new Date();
private Date nascimento;
private Date datadoc;
private Date validadecnh;
private Date primeiracnh;
private boolean ativo;
private Pessoa pessoa;
private Sexo sexo;
private EstadoCivil estadocivil;
private List<Endereco> endereco;
private List<Telefone> telefone;
private List<Email> email;
private Corretor corretor;
private Profissao profissao;
@Id
@GeneratedValue
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getTipodoc() {
return tipodoc;
}
public void setTipodoc(String tipodoc) {
this.tipodoc = tipodoc;
}
public String getNumdoc() {
return numdoc;
}
public void setNumdoc(String numdoc) {
this.numdoc = numdoc;
}
public String getOrgaodoc() {
return orgaodoc;
}
public void setOrgaodoc(String orgaodoc) {
this.orgaodoc = orgaodoc;
}
public String getNumcnh() {
return numcnh;
}
public void setNumcnh(String numcnh) {
this.numcnh = numcnh;
}
public String getCategoriacnh() {
return categoriacnh;
}
public void setCategoriacnh(String categoriacnh) {
this.categoriacnh = categoriacnh;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
@Temporal(TemporalType.DATE)
public Date getDatacadastro() {
return datacadastro;
}
public void setDatacadastro(Date datacadastro) {
this.datacadastro = datacadastro;
}
@Temporal(TemporalType.DATE)
public Date getNascimento() {
return nascimento;
}
public void setNascimento(Date nascimento) {
this.nascimento = nascimento;
}
@Temporal(TemporalType.DATE)
public Date getDatadoc() {
return datadoc;
}
public void setDatadoc(Date datadoc) {
this.datadoc = datadoc;
}
@Temporal(TemporalType.DATE)
public Date getValidadecnh() {
return validadecnh;
}
public void setValidadecnh(Date validadecnh) {
this.validadecnh = validadecnh;
}
@Temporal(TemporalType.DATE)
public Date getPrimeiracnh() {
return primeiracnh;
}
public void setPrimeiracnh(Date primeiracnh) {
this.primeiracnh = primeiracnh;
}
public boolean isAtivo() {
return ativo;
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
@Enumerated(EnumType.STRING)
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
@Enumerated(EnumType.STRING)
public Sexo getSexo() {
return sexo;
}
public void setSexo(Sexo sexo) {
this.sexo = sexo;
}
@Enumerated(EnumType.STRING)
public EstadoCivil getEstadocivil() {
return estadocivil;
}
public void setEstadocivil(EstadoCivil estadocivil) {
this.estadocivil = estadocivil;
}
@OneToMany(mappedBy = "cliente")
public List<Endereco> getEndereco() {
return endereco;
}
public void setEndereco(List<Endereco> endereco) {
this.endereco = endereco;
}
@OneToMany(mappedBy = "cliente")
public List<Telefone> getTelefone() {
return telefone;
}
public void setTelefone(List<Telefone> telefone) {
this.telefone = telefone;
}
@OneToMany(mappedBy = "cliente")
public List<Email> getEmail() {
return email;
}
public void setEmail(List<Email> email) {
this.email = email;
}
@ManyToOne
@JoinColumn(name = "codcorretor")
public Corretor getCorretor() {
return corretor;
}
public void setCorretor(Corretor corretor) {
this.corretor = corretor;
}
@ManyToOne
@JoinColumn(name = "codprofissao")
public Profissao getProfissao() {
return profissao;
}
public void setProfissao(Profissao profissao) {
this.profissao = profissao;
}
@Override
public int hashCode() {
int hash = 7;
hash = 71 * hash + Objects.hashCode(this.codigo);
hash = 71 * hash + Objects.hashCode(this.nome);
hash = 71 * hash + Objects.hashCode(this.cpf);
hash = 71 * hash + Objects.hashCode(this.cnpj);
hash = 71 * hash + Objects.hashCode(this.tipodoc);
hash = 71 * hash + Objects.hashCode(this.numdoc);
hash = 71 * hash + Objects.hashCode(this.orgaodoc);
hash = 71 * hash + Objects.hashCode(this.numcnh);
hash = 71 * hash + Objects.hashCode(this.categoriacnh);
hash = 71 * hash + Objects.hashCode(this.observacao);
hash = 71 * hash + Objects.hashCode(this.datacadastro);
hash = 71 * hash + Objects.hashCode(this.nascimento);
hash = 71 * hash + Objects.hashCode(this.datadoc);
hash = 71 * hash + Objects.hashCode(this.validadecnh);
hash = 71 * hash + Objects.hashCode(this.primeiracnh);
hash = 71 * hash + (this.ativo ? 1 : 0);
hash = 71 * hash + Objects.hashCode(this.pessoa);
hash = 71 * hash + Objects.hashCode(this.sexo);
hash = 71 * hash + Objects.hashCode(this.estadocivil);
hash = 71 * hash + Objects.hashCode(this.endereco);
hash = 71 * hash + Objects.hashCode(this.telefone);
hash = 71 * hash + Objects.hashCode(this.email);
hash = 71 * hash + Objects.hashCode(this.corretor);
hash = 71 * hash + Objects.hashCode(this.profissao);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Cliente other = (Cliente) obj;
if (!Objects.equals(this.codigo, other.codigo)) {
return false;
}
if (!Objects.equals(this.nome, other.nome)) {
return false;
}
if (!Objects.equals(this.cpf, other.cpf)) {
return false;
}
if (!Objects.equals(this.cnpj, other.cnpj)) {
return false;
}
if (!Objects.equals(this.tipodoc, other.tipodoc)) {
return false;
}
if (!Objects.equals(this.numdoc, other.numdoc)) {
return false;
}
if (!Objects.equals(this.orgaodoc, other.orgaodoc)) {
return false;
}
if (!Objects.equals(this.numcnh, other.numcnh)) {
return false;
}
if (!Objects.equals(this.categoriacnh, other.categoriacnh)) {
return false;
}
if (!Objects.equals(this.observacao, other.observacao)) {
return false;
}
if (!Objects.equals(this.datacadastro, other.datacadastro)) {
return false;
}
if (!Objects.equals(this.nascimento, other.nascimento)) {
return false;
}
if (!Objects.equals(this.datadoc, other.datadoc)) {
return false;
}
if (!Objects.equals(this.validadecnh, other.validadecnh)) {
return false;
}
if (!Objects.equals(this.primeiracnh, other.primeiracnh)) {
return false;
}
if (this.ativo != other.ativo) {
return false;
}
if (this.pessoa != other.pessoa) {
return false;
}
if (this.sexo != other.sexo) {
return false;
}
if (this.estadocivil != other.estadocivil) {
return false;
}
if (!Objects.equals(this.endereco, other.endereco)) {
return false;
}
if (!Objects.equals(this.telefone, other.telefone)) {
return false;
}
if (!Objects.equals(this.email, other.email)) {
return false;
}
if (!Objects.equals(this.corretor, other.corretor)) {
return false;
}
if (!Objects.equals(this.profissao, other.profissao)) {
return false;
}
return true;
}
}
@Entity
public class Endereco implements Serializable {
private static final long serialVersionUID = 1L;
private Integer codendereco;
private String logradouro;
private String numero;
private String complemento;
private String bairro;
private String cidade;
private String cep;
private TipoEndereco tipoendereco;
private UFEndereco uf;
private Cliente cliente;
@Id
@GeneratedValue
public Integer getCodendereco() {
return codendereco;
}
public void setCodendereco(Integer codendereco) {
this.codendereco = codendereco;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
@Enumerated(EnumType.STRING)
public TipoEndereco getTipoendereco() {
return tipoendereco;
}
public void setTipoendereco(TipoEndereco tipoendereco) {
this.tipoendereco = tipoendereco;
}
@Enumerated(EnumType.STRING)
public UFEndereco getUf() {
return uf;
}
public void setUf(UFEndereco uf) {
this.uf = uf;
}
@ManyToOne
@JoinColumn(name = "codigo", nullable = false)
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
@Override
public int hashCode() {
int hash = 3;
hash = 59 * hash + Objects.hashCode(this.codendereco);
hash = 59 * hash + Objects.hashCode(this.logradouro);
hash = 59 * hash + Objects.hashCode(this.numero);
hash = 59 * hash + Objects.hashCode(this.complemento);
hash = 59 * hash + Objects.hashCode(this.bairro);
hash = 59 * hash + Objects.hashCode(this.cidade);
hash = 59 * hash + Objects.hashCode(this.cep);
hash = 59 * hash + Objects.hashCode(this.tipoendereco);
hash = 59 * hash + Objects.hashCode(this.uf);
hash = 59 * hash + Objects.hashCode(this.cliente);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Endereco other = (Endereco) obj;
if (!Objects.equals(this.codendereco, other.codendereco)) {
return false;
}
if (!Objects.equals(this.logradouro, other.logradouro)) {
return false;
}
if (!Objects.equals(this.numero, other.numero)) {
return false;
}
if (!Objects.equals(this.complemento, other.complemento)) {
return false;
}
if (!Objects.equals(this.bairro, other.bairro)) {
return false;
}
if (!Objects.equals(this.cidade, other.cidade)) {
return false;
}
if (!Objects.equals(this.cep, other.cep)) {
return false;
}
if (this.tipoendereco != other.tipoendereco) {
return false;
}
if (this.uf != other.uf) {
return false;
}
if (!Objects.equals(this.cliente, other.cliente)) {
return false;
}
return true;
}
}
@ManagedBean(name="enderecoBean")
@RequestScoped
public class EnderecoBean {
private Endereco endereco = new Endereco();
private List<Endereco> lista;
private List<TipoEndereco> tiposEndereco;
private List<UFEndereco> ufs;
private List<Cliente> listaClientes;
public String novo() {
this.endereco = new Endereco();
return "/restrito/cadastrarendereco";
}
public String editar() {
return "/restrito/cadastrarendereco";
}
public void salvar() {
FacesContext facesContext = FacesContext.getCurrentInstance();
EnderecoRN enderecoRN = new EnderecoRN();
enderecoRN.salvar(this.endereco);
FacesMessage facesMessage = new FacesMessage("Endereço cadastrado com sucesso!");
facesContext.addMessage(null, facesMessage);
}
public String excluir() throws RNException {
EnderecoRN enderecoRN = new EnderecoRN();
enderecoRN.excluir(this.endereco);
this.lista = null;
return null;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public List<Endereco> getLista() {
if (this.lista == null) {
EnderecoRN enderecoRN = new EnderecoRN();
this.lista = enderecoRN.listar();
}
return lista;
}
public List<TipoEndereco> getTiposEndereco() {
return tiposEndereco = Arrays.asList(TipoEndereco.values());
}
public List<UFEndereco> getUfs() {
return ufs = Arrays.asList(UFEndereco.values());
}
public List<Cliente> getListaClientes() {
return listaClientes;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Cadastro de Endereço</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<h:outputStylesheet library="css" name="sistema.css" />
</h:head>
<h:body>
<header>
<div style="float: right; margin-right: 110px">
<h:form style="display: inline-block">
<p:menubar styleClass="menu-sistema">
<p:submenu label="Cadastros">
<p:menuitem value="Clientes" url="/restrito/cadastrarcliente.jsf"/>
<p:menuitem value="Seguros" url="/restrito/cadastrarseguro.jsf"/>
</p:submenu>
<p:submenu label="Consultas">
<p:menuitem value="Clientes" url="/restrito/consultarclientes.jsf"/>
<p:menuitem value="Seguros" url="/restrito/consultarseguros.jsf"/>
</p:submenu>
<p:submenu label="Relatórios">
<p:menuitem value="Clientes" url="/restrito/relclientes.jsf"/>
<p:menuitem value="Seguros" url="/restrito/relseguros.jsf"/>
</p:submenu>
<p:menuitem value="Sair" icon="ui-icon-close" onclick="document.location='#{request.contextPath}/j_spring_security_logout'" />
</p:menubar>
</h:form>
</div>
<div style="clear: both"></div>
</header>
<h:form acceptcharset="ISO-8859-1">
<h1>Novo endereço</h1>
<p:toolbar style="margin-top: 20px">
<p:toolbarGroup>
<p:button value="Novo" outcome="/restrito/cadastrarendereco" />
<p:commandButton action="#{enderecoBean.salvar()}" value="Salvar" ajax="false" update="messages"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:button value="Voltar" outcome="/restrito/cadastrarcliente"/>
</p:toolbarGroup>
</p:toolbar>
<br/><br/>
<p:panel header="Dados do Endereço">
<p:messages id="messages" autoUpdate="true" closable="true" />
<h:inputHidden id="codigo" value="#{enderecoBean.endereco.codendereco}" />
<h:panelGrid columns="4" style="width: 100%; margin-top: 20px" columnClasses="rotulo, campo, rotulo, campo" cellpadding="3">
<h:outputText value="Tipo de Endereço:" />
<p:selectOneMenu id="tipoEndereco" value="#{enderecoBean.endereco.tipoendereco}" label="Tipo de Endereço" required="true" requiredMessage="Informe o Tipo de Endereço." immediate="true">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{enderecoBean.tiposEndereco}" var="tipoEndereco" itemLabel="#{tipoEndereco.descricao}" itemValue="#"/>
</p:selectOneMenu>
<h:outputText value="Logradouro:" />
<p:inputText id="nome" value="#{enderecoBean.endereco.logradouro}" required="true" label="Logradouro" size="100" requiredMessage="Informe o Logradouro." immediate="true"/>
<h:outputText value="Número:" />
<p:inputMask mask="9?999999999" value="#{enderecoBean.endereco.numero}" required="true" label="Nº" size="10" maxlength="10" requiredMessage="Informe o Número." immediate="true"/>
<h:outputText value="Complemento:" />
<p:inputText value="#{enderecoBean.endereco.complemento}" required="true" label="Complemento" size="20" maxlength="20" />
<h:outputText value="Bairro:" />
<p:inputText value="#{enderecoBean.endereco.bairro}" label="Bairro" required="true" size="50" maxlength="50" requiredMessage="Informe o Bairro." immediate="true"/>
<h:outputText value="Cidade:" />
<p:inputText value="#{enderecoBean.endereco.cidade}" label="Cidade" required="true" size="50" maxlength="50" requiredMessage="Informe a Cidade." immediate="true"/>
<h:outputText value="CEP:" />
<p:inputMask id="cep" mask="99999-999" value="#{enderecoBean.endereco.cep}" required="true" size="10" maxlength="10" requiredMessage="Informe o CEP." immediate="true"/>
<h:outputText value="UF:" />
<p:selectOneMenu id="uf" value="#{enderecoBean.endereco.uf}" required="true" requiredMessage="Informe o Estado." immediate="true">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{enderecoBean.ufs}" var="uf" itemLabel="#{uf.descricao}" itemValue="#"/>
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</html>
Sgrandini
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)