Problemas com JSF e primefaces

0 respostas
H

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;
    }

}
minha view
<?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!!

Criado 27 de dezembro de 2010
Respostas 0
Participantes 1