Pessoal estou com problemas para cria um CRUD usando jsf 2.0 + primefaces 2.2 + hibernate 3.6, consigo efetuar a inclusao e exclusao do objeto porem nao consigo criar uma tela para alteração, ja vi alguns modelos mas nao funciona é como se o objeto nao tivesse nenhum valor (campos para edição vem em branco), segue codigos.
Controller
package com.geco.controller;
import com.geco.hibernate.util.dao.FornecedorDao;
import com.geco.model.Fornecedor;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import org.hibernate.HibernateException;
/**
*
* @author mpolverini
*/
@ManagedBean
@ViewScoped
public class FornecedorController implements Serializable {
private Fornecedor fornecedor = new Fornecedor();
private List listaFornecedor;
public Fornecedor getFornecedor() {
fornecedor = new Fornecedor();
return fornecedor;
}
public void setFornecedor(Fornecedor fornecedor) {
this.fornecedor = fornecedor;
}
public List getListaFornecedor() {
try {
listaFornecedor = new FornecedorDao().list();
} catch (HibernateException hex) {
hex.printStackTrace();
}
return listaFornecedor;
}
public void save() {
FornecedorDao dao = new FornecedorDao();
try {
dao.save(fornecedor);
msg(1, "Cadastro", "Cadastrado com Sucesso!");
} catch (HibernateException hex) {
msg(3, "Erro", "Cadastro não Efetuado!");
hex.printStackTrace();
}
}
public void update() {
FornecedorDao dao = new FornecedorDao();
try {
dao.update(fornecedor);
msg(1, "Atualização", "Atualizado com Sucesso!");
} catch (HibernateException hex) {
msg(3, "Erro", "Cadastro não Atualizado!");
hex.printStackTrace();
}
}
public void remove() {
FornecedorDao dao = new FornecedorDao();
try {
dao.remove(fornecedor);
msg(1, "Exclusão", "Excluido com Sucesso!");
} catch (HibernateException hex) {
msg(3, "Erro", "Cadastro não Excluido!");
hex.printStackTrace();
}
}
/**
*
* @param icon 1=info 2=warn 3=fatal
* @param title
* @param msg
*/
public void msg(int icon, String title, String msg) {
if (icon == 1) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, title, msg));
} else if (icon == 2) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, title, msg));
} else if (icon == 3) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, title, msg));
}
}
}
XHTML
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="./../../template/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="modal">
<h:form>
<p:confirmDialog widgetVar="remov" message="EXCLUIR FORNECEDOR SELECIONADO ?" showEffect="slide" hideEffect="clip">
<p:commandButton value="Sim" image="ui-icon ui-icon-trash" action="#{fornecedorController.remove}" onclick="remov.hide()" update="tabela,growl"/>
<p:commandButton value="Não" onclick="remov.hide()"/>
</p:confirmDialog>
</h:form>
</ui:define>
<ui:define name="top">
<b><h:outputText value="Generencia de Fornecedores" style="font-family: Tahoma; font-size: 15px; font: bold;" /></b>
</ui:define>
<ui:define name="center">
<br/>
<p:fieldset legend="Cadastrar" toggleable="true" toggleSpeed="400">
<h:form>
<h:panelGrid columns="6">
<h:outputLabel value="Razão social :"/>
<p:inputText size="40" required="true" requiredMessage="Informe a Razão Social !" value="#{fornecedorController.fornecedor.razao_soc}" style="text-transform: uppercase"/>
<h:outputLabel/><h:outputLabel/><h:outputLabel/><h:outputLabel/>
<h:outputLabel value="Endereço :"/>
<p:inputText size="40" required="true" requiredMessage="Informe o Endereço !" value="#{fornecedorController.fornecedor.endereco}" style="text-transform: uppercase"/>
<h:outputLabel value="Bairro :"/>
<p:inputText size="20" required="true" requiredMessage="Informe o Bairro !" value="#{fornecedorController.fornecedor.bairro}" style="text-transform: uppercase"/>
<h:outputLabel value="Cidade :"/>
<p:inputText size="20" required="true" requiredMessage="Informe a Cidade !" value="#{fornecedorController.fornecedor.cidade}" style="text-transform: uppercase"/>
<h:outputLabel value="Estado :"/>
<p:inputText size="5" required="true" requiredMessage="Informe o Estado !" maxlength="2" value="#{fornecedorController.fornecedor.uf}" style="text-transform: uppercase"/>
<h:outputLabel value="CEP :"/>
<p:inputMask mask="99999-999" maxlength="8" size="12" required="true" requiredMessage="Informe o CEP" value="#{fornecedorController.fornecedor.cep}" style="text-transform: uppercase"/>
<h:outputLabel value="CNPJ :"/>
<p:inputMask mask="99.999.999/9999-99" maxlength="14" requiredMessage="Informe o CNPJ" size="20" required="true" value="#{fornecedorController.fornecedor.cnpj}" style="text-transform: uppercase"/>
<h:outputLabel value="Insc. Estadual :"/>
<p:inputText size="20" required="true" requiredMessage="Informe a Insc. Estadual" value="#{fornecedorController.fornecedor.insc_estad}" style="text-transform: uppercase"/>
<h:outputLabel value="Telefone :"/>
<p:inputMask mask="(99) 9999-9999" size="12" maxlength="10" required="true" requiredMessage="Informe o Telefone" value="#{fornecedorController.fornecedor.tel1}" style="text-transform: uppercase"/>
<h:outputLabel value="Telefone :"/>
<p:inputMask mask="(99) 9999-9999" size="12" maxlength="10" value="#{fornecedorController.fornecedor.tel2}" style="text-transform: uppercase"/>
<h:outputLabel value="E-mail :"/>
<p:inputText size="20" value="#{fornecedorController.fornecedor.email}" style="text-transform: uppercase" />
<h:outputLabel value="Contato :"/>
<p:inputText size="20" value="#{fornecedorController.fornecedor.contato}" style="text-transform: uppercase"/>
<h:outputLabel/><h:outputLabel/>
<p:commandButton title="Salvar" update="growl,tabela" action="#{fornecedorController.save}" image="ui-icon ui-icon-disk"/>
<p:commandButton title="Limpar" image="ui-icon ui-icon-trash" type="reset"/>
</h:panelGrid>
</h:form>
</p:fieldset>
<br/>
<h:form id="bts">
<p:commandButton id="bt1" action="#{viewComp.look}" rendered="#{viewComp.fornecedor==false}" update="tabela,bts" value="Ver Cadastros"/>
<p:commandButton id="bt2" action="#{viewComp.nLook}" rendered="#{viewComp.fornecedor}" update="tabela,bts" value="Fechar Cadastros"/>
</h:form>
<br/>
<p:fieldset legend="Cadastros" toggleable="true" toggleSpeed="500" id="tabela" rendered="#{viewComp.fornecedor}">
<h:form>
<p:dataTable id="tbl" var="fornecedor" value="#{fornecedorController.listaFornecedor}" paginator="true" rows="5"
selection="#{fornecedorController.fornecedor}" selectionMode="single">
<p:column>
<f:facet name="header">
<h:outputText value="Id" title="Identificador" />
</f:facet>
<h:outputText value="#{fornecedor.cod_fornecedor}" />
</p:column>
<p:column >
<f:facet name="header" >
<h:outputText value="Razão Social" />
</f:facet>
<h:outputText value="#{fornecedor.razao_soc}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Endereço" />
</f:facet>
<h:outputText value="#{fornecedor.endereco}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Bairro" />
</f:facet>
<h:outputText value="#{fornecedor.bairro}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Cidade" />
</f:facet>
<h:outputText value="#{fornecedor.cidade}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Uf" title="Estado" />
</f:facet>
<h:outputText value="#{fornecedor.uf}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="CEP" />
</f:facet>
<h:outputText value="#{fornecedor.cep}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Telefone(1)" />
</f:facet>
<h:outputText value="#{fornecedor.tel1}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Telefone(2)" />
</f:facet>
<h:outputText value="#{fornecedor.tel2}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="E-mail" />
</f:facet>
<h:outputText value="#{fornecedor.email}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Contato" />
</f:facet>
<h:outputText value="#{fornecedor.contato}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="CNPJ" title="Cadastro Nacional Pessoa Juridica" />
</f:facet>
<h:outputText value="#{fornecedor.cnpj}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Insc. Estadual" title="Inscrição Estadual." />
</f:facet>
<h:outputText value="#{fornecedor.insc_estad}" />
</p:column>
<f:facet name="footer">
<p:commandButton value="Editar" async="true" image="ui-icon ui-icon-search" type="button" onclick="alert('Em Desenvolvimento !')"/>
<p:commandButton value="Excluir" image="ui-icon ui-icon-wrench" onclick="remov.show()" type="button"/>
</f:facet>
</p:dataTable>
<h:commandLink>
<p:graphicImage value="/img/pdf.png" />
<p:dataExporter target="tbl" type="pdf" fileName="Fornecedores ASK!" preProcessor="#{dataExporter.preProcessPDF}"/>
</h:commandLink>
<h:commandLink>
<p:graphicImage value="/img/excel.png" />
<p:dataExporter type="xls" target="tbl" fileName="Fornecedores ASK!" postProcessor="#{dataExporter.postProcessXLS}"/>
</h:commandLink>
</h:form>
</p:fieldset>
</ui:define>
</ui:composition>