Pessoal, eu estou aprendendo e criei um CRUD seguindo um tutorial da net. Estou usando o NetBeans e ele não aponta nenhum erro no código, mas ao clicar no botão Salvar, ele não pega os dados digitados na tag <p: inputtext>, vai tudo vazio na hora de salvar no BD. O que poderia ser? Olha o código:
[code]
<h:head>
Cadastro de Clientes
</h:head>
<h:body>
<h:form id=“form”>
<p:panel header=“CLIENTE”>
<p:messages />
<h:panelGrid columns=“2”>
<h:outputLabel value=“NOME:” for=“nome” />
<p:inputText id=“nome” label=“nome” value="#{clienteBean.cliente.nome}" maxlength=“40” size=“40” />
<h:outputLabel value=“TIPO DE DOCUMENTO:” for=“cpf-cnpj”/>
<h:selectOneRadio id=“cpf-cnpj” label=“cpf-cnpj” >
<f:selectItem itemLabel=“CNPJ”/>
<f:selectItem itemLabel=“CPF”/>
</h:selectOneRadio>
<h:outputLabel value=“CPF:” for=“cpf”/>
<p:inputText id=“cpf” label=“cpf” value="#{clienteBean.cliente.nome}" maxlength=“14” size=“40”/>
<h:outputLabel value=“CNPJ:” for=“cnpj”/>
<p:inputText id=“cnpj” label=“cnpj” value="#{clienteBean.cliente.cnpj}" maxlength=“14” size=“40”/>
<h:outputLabel value=“ENDEREÇO:” for=“end”/>
<p:inputText id=“end” label=“end” value="#{clienteBean.cliente.endereco}" maxlength=“40” size=“40”/>
<h:outputLabel value=“NÚMERO” for=“nro”/>
<p:inputText id=“nro” label=“nro” value="#{clienteBean.cliente.numero}" maxlength=“14” size=“40”/>
<h:outputLabel value=“TELEFONE:” for=“tel”/>
<p:inputText id=“tel” label=“tel” value="#{clienteBean.cliente.telefone}" maxlength=“14” size=“40”/>
<h:outputLabel value=“ESTADO” for=“uf”/>
<p:inputText id=“uf” label=“uf” value="#{clienteBean.cliente.estado}" maxlength=“20” size=“40”/>
<h:outputLabel value=“MUNICÍPIO:” for=“mun”/>
<p:inputText id=“mun” label=“mun” value="#{clienteBean.cliente.municipio}" maxlength=“40” size=“40”/>
<p:commandButton id="btnSalvar" value="SALVAR" actionListener="#{clienteBean.salvar}" update="form"/>
[/code]
Olhem o código do ClienteBean, onde está o método Salvar():
package br.com.cliente.controllers;
import br.com.cliente.daos.ClienteDao;
import br.com.cliente.daos.ClienteDaoImpl;
import br.com.cliente.models.Cliente;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
@ManagedBean
@SessionScoped
public class ClienteBean implements Serializable {
private Cliente cliente = new Cliente();
private List clientes = new ArrayList();
private ClienteDao dao = new ClienteDaoImpl();
//Creates a new instance of ClienteBean
public ClienteBean() {
clientes = dao.consultar();
}
public void salvar(ActionEvent event) {
dao.save(cliente);
cliente = new Cliente();
clientes = dao.consultar();
}
public void editar() {
cliente = dao.getById(cliente.getIdCliente());
}
public void excluir() {
dao.delete(cliente);
clientes = dao.consultar();
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public List getClientes() {
return clientes;
}
public void setClientes(List clientes) {
this.clientes = clientes;
}
}
A classe Cliente:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.cliente.models;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
*
* @author Filipe
*/
@Entity
public class Cliente implements Serializable {
@Id //Define que a variavel abaixo sera o ID no banco
@GeneratedValue(strategy= GenerationType.IDENTITY) //Gera um ID para cada cliente
private Long idCliente;
@Column(name="NOME", length=80) //define nome e tamanho da coluna no bd
private String nome;
@Column(name="CPF", length=12)
private String cpf;
@Column(name="CNPJ", length=14)
private String cnpj;
@Column(name="ENDERECO", length=80)
private String endereco;
@Column(name="NUMERO", length=20)
private String numero;
@Column(name="TELEFONE", length=20)
private String telefone;
@Column(name="ESTADO", length=80)
private String estado;
@Column(name="MUNICIPIO", length=80)
private String municipio;
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public Long getIdCliente() {
return idCliente;
}
public void setIdCliente(Long idCliente) {
this.idCliente = idCliente;
}
public String getMunicipio() {
return municipio;
}
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
Olhem o que aparece no console ao clicar no botão salvar:
insert
into
Cliente
(CNPJ, CPF, ENDERECO, ESTADO, MUNICIPIO, NOME, NUMERO, TELEFONE)
values
(?, ?, ?, ?, ?, ?, ?, ?)
O que poderia ser o erro??
Obrigado.