Dúvida em método update em JSF

0 respostas
Genoma

Boa noite a todos!

Sou novo aqui no fórum e iniciante em java web, então me desculpem se estou fazendo uma pergunta boba.
Lá vai…

Criei uma aplicação em jsf com hibernate, fiz então uma classe DAO e um ManagedBean:

Indo direto ao ponto fiz métodos estilo “CRUD”. O problema é no método atualizar!
Quando clico no botão na página ele não atuliza os dados, e não sei o que fiz de errado.
Se alguém puder me ajudar já agradeço.
Eis o código.

[codepackage managed;

import entity.Pessoa;

import java.util.ArrayList;

import java.util.List;

import javax.faces.application.FacesMessage;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.RequestScoped;

import javax.faces.component.UIParameter;

import javax.faces.context.FacesContext;

import javax.faces.event.ActionEvent;

import persistence.PessoaDao;

@ManagedBean
@RequestScoped
public class PessoaBean {

//ATRIBUTOS PARA ARMAZENAR O VALOR DOS CAMPOS
private String nome;
private String email;
//ATRIBUTO PARA EXIBIR A CONSULTA NA TABELA
private List<Pessoa> dados = new ArrayList<Pessoa>();

public PessoaBean() {
}

//MÉTODOS QUE REFLETEM A PESSOADAO
public void cadastrar(){
    try {
        //CRIA UM NOVO OBJETO Pessoa
        Pessoa p = new Pessoa();
        //ATRIBUI AOS CAMPOS O VALOR SETADO POR set.
        p.setNome(nome);
        p.setEmail(email);
        //CRIA UM NOVO OBJETO PessoaDao CHAMA O MÉTODO SALVAR PASSANDO 
        //Pessoa PARA O MÉTODO(p).
        new PessoaDao().salvar(p);

        //PEGA A INSTÂNCIA ABERTA E PASSA MENSAGEM DE RETORNO PARA O
        //FORM PELO id.
        FacesContext.getCurrentInstance().addMessage("frmcadastro",
                new FacesMessage("Cadastrado com sucesso!"));
        
    } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage("frmcadastro",
                new FacesMessage(e.getMessage()));
    }
}

public void excluir(ActionEvent event){
    //RESGATE DO PARÂMETRO PESSOA
    UIParameter p =(UIParameter) event.getComponent().findComponent("excluirP");
    try {
        Pessoa item = (Pessoa) p.getValue();
        new PessoaDao().excluir(item);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void atualizar(ActionEvent event){
    UIParameter p = (UIParameter) event.getComponent().findComponent("atualizarP");
    try {
        Pessoa item = (Pessoa) p.getValue();
        new PessoaDao().atualizar(item);
        
    } catch (Exception e) {
        e.printStackTrace();
    }
}


public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public List<Pessoa> getDados() {
    try {
        dados = new PessoaDao().consultar();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return dados;
}

public void setDados(List<Pessoa> dados) {
    this.dados = dados;
}

}

[
package persistence;

import entity.Pessoa;

import org.hibernate.<em>;

import java.util.</em>;

public class PessoaDao {

Session s;
Transaction t;
Query q;
//-----------CRUD---------------

public void salvar(Pessoa p) throws Exception{

//ABRE UMA CONEXÃO

s = HibernateUtil.getSessionFactory().openSession();

//COMEÇA A OPERAÇÃO

t = s.beginTransaction();

//SALVA PESSOA (CLASSE DE ENTIDADE)

s.save§;

//CONFIRMA A OPERAÇÃO

t.commit();

}
public void excluir(Pessoa p) throws Exception{
    s = HibernateUtil.getSessionFactory().openSession();
    t = s.beginTransaction();

    s.delete(p);
    t.commit();
}

public void atualizar(Pessoa p) throws Exception{
    s = HibernateUtil.getSessionFactory().openSession();
    t = s.beginTransaction();

    s.update(p);
    t.commit();
}

public List<Pessoa> consultar() throws Exception{
    s = HibernateUtil.getSessionFactory().openSession();
    q = s.createQuery("from Pessoa order by id asc");

    return q.list();
}

}]
AQUI É A JSF

ontentType=“text/html” pageEncoding=“UTF-8”%>

<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>

<%

This file is an entry point for JavaServer Faces application.

%>

<f:view>







Index





<h:outputText value=“JavaWeb - Teste de JSF: Luiz Paulo Aureliano”/>


<h:form id=“frmcadastro”>
<h:outputText value=“Formulário de Cadastro”/>
<h:panelGrid columns=“2”>
<h:outputLabel value=“Nome:” for=“nome”/>
<h:inputText id=“nome” required=“true”
requiredMessage=“Por favor informe seu nome”
value="#{PessoaBean.nome}"/>
<h:outputLabel value=“Email:” for=“email”/>
<h:inputText id=“email” required=“true”
requiredMessage=“Por favor informe seu email”
value="#{PessoaBean.email}"/>
</h:panelGrid>
<h:commandButton value=“Cadastrar” action="#{PessoaBean.cadastrar}"/>
<h:messages/>
</h:form>
<h:form id="frmdados">
            <h:dataTable border="1" value="#{PessoaBean.dados}" var="p">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Código"/>                            
                    </f:facet>
                    <h:inputText value="#{p.idpessoa}"/>
                </h:column>
                 <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nome"/>                           
                    </f:facet>
                     <h:inputText value="#{p.nome}"/>
                </h:column>
                 <h:column>
                    <f:facet name="header">
                        <h:outputText value="Email"/>                           
                    </f:facet>
                     <h:inputText value="#{p.email}"/>
                </h:column>
                 <h:column>
                    <f:facet name="header">
                        <h:outputText value="Ações"/>
                    </f:facet>

                     <h:commandButton value="Excluir" actionListener="#{PessoaBean.excluir}">
                         <f:param name="excluirP" id="excluirP" value="#{p}"/>
                     </h:commandButton>

                     <h:commandButton value="Atualizar" actionListener="#{PessoaBean.atualizar}">
                         <f:param name="atualizarP"  id="atualizarP" value="#{p}"/>
                     </h:commandButton>
                </h:column>
            </h:dataTable>
        </h:form>
    </body>
</html>

</f:view>

]

Criado 10 de dezembro de 2010
Respostas 0
Participantes 1