Eai pessoal estou com um probleminha aqui estou usando datamodel e datatable mais quando tento atualizar meu cadastro tenho um problema pois quando coloco meu datamodel.getRowData() ele me retorna o objeto correto porem quando mando salvar ele seta meu id como null se puderem me ajudar sou novado em web ainda.
Obrigado desde já
meu Bean/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.bean.conta;
import br.com.modelo.DAO.DAOFactory;
import br.com.modelo.conta.TipoConta;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
@ManagedBean(name="tipoContaBean")
@RequestScoped
public class TipoContaBean {
private TipoConta tipoConta = new TipoConta();
private DataModel listaTipoConta;
public TipoContaBean() {
}
public void salvar(ActionEvent actionEvent){
DAOFactory daoFactory = new DAOFactory();
daoFactory.beginTransaction();
daoFactory.getTipoContaDAO().inserir(tipoConta);
daoFactory.commit();
}
public void prepararCriacao(ActionEvent actionEvent){
tipoConta = new TipoConta();
}
public void prepararAlterarTipoConta(ActionEvent actionEvent){
tipoConta = (TipoConta) (listaTipoConta.getRowData());
System.out.print(this.tipoConta.getId());
}
public void alterar(ActionEvent actionEvent){
DAOFactory daoFactory = new DAOFactory();
daoFactory.beginTransaction();
daoFactory.getTipoContaDAO().alterar(this.tipoConta);
daoFactory.commit();
}
public String excluirTipoConta(){
DAOFactory daoFactory = new DAOFactory();
daoFactory.beginTransaction();
TipoConta tipoContaTemp = (TipoConta) listaTipoConta.getRowData();
daoFactory.getTipoContaDAO().remover(tipoContaTemp);
daoFactory.commit();
return "listarTipoDeConta";
}
public TipoConta getTipoConta() {
return tipoConta;
}
public void setTipoConta(TipoConta tipoConta) {
this.tipoConta = tipoConta;
}
public DataModel getListaTipoConta(){
List<TipoConta> lista = new DAOFactory().getTipoContaDAO().listarTudo();
listaTipoConta = new ListDataModel(lista);
return listaTipoConta;
}
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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.prime.com.tr/ui">
<h:head>
<title>Gerenciador De Tipo de Contas</title>
<link type="text/css" rel="stylesheet" href="dot-luv/skin.css"/>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="left" width="200" header="Menu" resizable="true" closable="false" collapsible="true">
<h:form>
<p:commandLink value="Novo" actionListener="#{tipoContaBean.prepararCriacao}" update="formTipoConta" oncomplete="dialogGerTipoConta.show()"/>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center" >
<h1>Manutenção de Tipo de Conta</h1>
<br/>
<h:form prependId="false">
<p:dataTable var="tipoConta" value="#{tipoContaBean.listaTipoConta}" id="tabela">
<p:column>
<f:facet name="header">
<h:outputText value="Código"/>
</f:facet>
<h:outputText value="#{tipoConta.id}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Descrição"/>
</f:facet>
<h:outputText value="#{tipoConta.nome}"/>
</p:column>
<p:column>
<f:facet name="header"/>
<p:commandButton actionListener="${tipoContaBean.prepararAlterarTipoConta}" value="Alterar" update="formTipoContaAlt" oncomplete="dialogGerTipoContaAlterar.show()"/>
</p:column>
<p:column>
<f:facet name="header"/>
<h:commandLink action="#{tipoContaBean.excluirTipoConta}" value="Excluir"/>
</p:column>
</p:dataTable>
</h:form>
</p:layoutUnit>
</p:layout>
<p:dialog header="Cadastro de Tipo de Conta" widgetVar="dialogGerTipoContaAlterar" resizable="false" modal="true" showEffect="slide" width="500">
<h:form prependId="false">
<h:panelGrid columns="2" id="formTipoContaAlt" style="margin-bottom:10px">
<h:outputLabel for="nomeAlt" value="Nome:"/>
<h:inputText id="nomeAlt" value="#{tipoContaBean.tipoConta.nome}"/>
<p:commandButton actionListener="#{tipoContaBean.alterar}" update="tabela" oncomplete="dialogGerTipoContaAlterar.hide()" value="Alterar"/>
</h:panelGrid>
</h:form>
</p:dialog>
<p:dialog header="Cadastro de Tipo de Conta" widgetVar="dialogGerTipoConta" resizable="false" modal="true" showEffect="slide" width="500">
<h:form prependId="false">
<h:panelGrid columns="2" id="formTipoConta" style="margin-bottom:10px">
<h:outputLabel for="nome" value="Nome:"/>
<h:inputText id="nome" value="#{tipoContaBean.tipoConta.nome}"/>
<p:commandButton actionListener="#{tipoContaBean.salvar}" update="tabela" oncomplete="dialogGerTipoConta.hide()" value="Salvar"/>
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
</html>
Obrigado!!