Olá Pessoal estou com um erro ao tentar realizar o cadastro de um cliente através de um formulário criado através do primefaces alguém me ajuda abaixo segue meu código e o erro que apresenta no console quando tento salvar o cadastro.
Código cadastro do cliente:
<p:outputLabel value="Preencha os dados para cadastro do cliente:" />
<br></br>
<br></br>
<h:form id="formCliNovo">
<h:panelGrid id="pnlCliNovo" columns="2">
<p:outputLabel value="Nome: " />
<p:inputText maxlength="100" size="30" value="#{MBCliente.cliente.nome}" />
<p:outputLabel value="E-mail: " />
<p:inputText maxlength="100" size="30" value="#{MBCliente.cliente.email}" />
<p:outputLabel value="Telefone: " />
<p:inputText maxlength="14" size="15" value="#{MBCliente.cliente.telefone}" />
<p:outputLabel value="CEP: " />
<p:inputText maxlength="8" size="10" value="#{MBCliente.cliente.cep}" />
<p:outputLabel value="Rua: " />
<p:inputText maxlength="100" size="30" value="#{MBCliente.cliente.rua}" />
<p:outputLabel value="Numero: " />
<p:inputText maxlength="5" size="5" value="#{MBCliente.cliente.numero}" />
<p:outputLabel value="Bairro: " />
<p:inputText maxlength="50" size="30" value="#{MBCliente.cliente.bairro}" />
<p:outputLabel value="Cidade: " />
<p:selectOneMenu>
<f:selectItem itemValue="1" itemLabel="Porto Alegre" value="#{MBCliente.cliente.cidade}" />
<f:selectItem itemValue="2" itemLabel="Viamão" value="#{MBCliente.cliente.cidade}"/>
<f:selectItem itemValue="3" itemLabel="Alvorada" value="#{MBCliente.cliente.cidade}"/>
<f:selectItem itemValue="4" itemLabel="Gravatai" value="#{MBCliente.cliente.cidade}"/>
<f:selectItem itemValue="5" itemLabel="Canoas" value="#{MBCliente.cliente.cidade}"/>
</p:selectOneMenu>
<h:panelGrid columns="1">
<p:commandButton value="Gravar" actionListener="#{MBCliente.novo}"/>
</h:panelGrid>
</h:panelGrid>
</h:form>
</h:body>
</html>
codigo BEAN
public class ClienteBean {
private Cliente cliente;
private ListDataModel<Cliente> items; //Variavel para listar os dados na tela
public ListDataModel<Cliente> getItems() {
return items;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public void setItems(ListDataModel<Cliente> items) {
this.items = items;
}
//Para que o metodo seja invocado antes de a pagina ser carregada
@PostConstruct
public void prepararPesquisa(){
try {
// criou o DAO para acesso aos metodos da classe
ClienteDAO dao = new ClienteDAO();
//Criou o lista, capturou os dados do banco de dados e guardou na variavel lista
ArrayList<Cliente> lista = dao.listar();
// converte o ArrayList em ListDataModel, para que possa ser exibido na tela
items = new ListDataModel<Cliente>(lista);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void preparaNovo(){
cliente = new Cliente();
}
public void novo() {
try {
ClienteDAO dao = new ClienteDAO();
dao.salvar(cliente);
ArrayList<Cliente> lista = dao.listar();
items = new ListDataModel<Cliente>(lista);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Erro:
mai 14, 2017 5:16:35 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
ADVERTÊNCIA: /CadastroCliente.xhtml @20,79 value="#{MBCliente.cliente.nome}": Target Unreachable, ‘cliente’ returned null
javax.el.PropertyNotFoundException: /CadastroCliente.xhtml @20,79 value="#{MBCliente.cliente.nome}": Target Unreachable, ‘cliente’ returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(Unknown Source)
at org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:146)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)
at javax.faces.component.UIInput.getConvertedValue(Unknown Source)
at javax.faces.component.UIInput.validate(Unknown Source)
at javax.faces.component.UIInput.executeValidate(Unknown Source)
at javax.faces.component.UIInput.processValidators(Unknown Source)
at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
at javax.faces.component.UIForm.processValidators(Unknown Source)
at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
at javax.faces.component.UIViewRoot.processValidators(Unknown Source)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(Unknown Source)
at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)
at javax.faces.webapp.FacesServlet.service(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)