Boa tarde a todos!
Gostaria de pedir, encarecidamente, a ajuda dos especialistas aqui presentes.
Sou iniciante em programação java e estou tendo uma dificuldade muito grande ao tentar desenvolver o meu próprio CRUD.
Ao Clicar no botão para excluir o registro, ele só atualiza a página e não chama o método correto no meu ManagedBean.
Observação: Se eu coloco o mesmo botão fora do <p:pane> ele chama o método perfeitamente.
Seguem os códigos utilizados:
contato.xhtml
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cliente</title>
</h:head>
<h:body>
<c:metadata>
<c:event listener="#{contatobean.listar}" type="preRenderView"></c:event>
</c:metadata>
<p:panel header="CONTATO">
<p:messages/>
<!-- Listagem -->
<h:form id="form2">
<p:dataTable id="tabela" value="#{contatobean.contatos}" var="contato" emptyMessage="Nenhum registro incluido" paginator="true" rows="10">
<c:facet name="header">Lista de Clientes </c:facet>
<p:column headerText="Nome" style="text-align: center;">
<h:outputText value="#{contato.nome}"/>
</p:column>
<p:column headerText="Email" style="text-align: center;">
<h:outputText value="#{contato.email}"/>
</p:column>
<p:column headerText="Alterar - Excluir" style="text-align:center;">
<h:link value="Editar" outcome="editar">
<c:param name="id" value="#{contato.id}"></c:param>
</h:link>
<p:commandButton actionListener="#{contatobean.excluirUser(25)}" update="form2:tabela" value="Com update" id="btnExcluir1" immediate="true"></p:commandButton>
<p:commandButton action="#{contatobean.excluirUser(25)}" value="Sem update" id="btnExcluir2"></p:commandButton>
<p:commandButton action="#{contatobean.excluirUser(contato.id)}" update="form2:tabela" value="Excluir" id="btnExcluir3"></p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<h:form>
<p:commandButton actionListener="#{contatobean.excluirUser(25)}" update="form2:tabela" value="Com update2" id="btnExcluir12" immediate="true"></p:commandButton>
</h:form>
</p:panel>
<h:form>
<p:commandButton actionListener="#{contatobean.excluirUser(25)}" update="form2:tabela" value="Com update3" id="btnExcluir13"></p:commandButton>
</h:form>
</h:body>
Contatobean:
package br.com.contato.managedbean;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.event.ActionEvent;
import br.com.contato.dao.ContatoDao;
import br.com.contato.modelo.Contato;
@ManagedBean
public class Contatobean {
private Contato contato = new Contato();
private ContatoDao contatoDao = new ContatoDao();
private List<Contato> contatos = new ArrayList<Contato>();
private Long contatoId;
public void adicionarContato(ActionEvent event)
{
contatoDao.salvar(contato);
contato = new Contato();
contatos = contatoDao.listar();
}
public String atualizarContato()
{
contatoDao.atualizar(contato);
return "contato.xml??faces-redirect=true";
}
public String excluirUser(long id)
{
/*Contato contatoExcluido = contatoDao.getById(id);
contatoDao.excluir(contatoExcluido);
this.contato = new Contato();
contatos = contatoDao.listar();*/
System.out.println("entrou no excluir");
return "/contato.xhtml";
}
public Contato getContato()
{
return contato;
}
public void setContato(Contato contato)
{
this.contato = contato;
}
public void listar()
{
contatos = contatoDao.listar();
}
public List<Contato> getContatos() {
return contatos;
}
public void setContatos(List<Contato> contatos) {
this.contatos = contatos;
}
public Long getContatoId() {
return contatoId;
}
public void setContatoId(Long contatoId) {
this.contatoId = contatoId;
}
public void viewContato()
{
contato = contatoDao.getById(contatoId);
}
}
Desde já, muito obrigado a todos!