[quote=leonhard32][quote=Viciado][quote=leonhard32]Sobre o seu metodo remover, você está recebendo o objeto Cliente, crie um atributo no seu bean, algo como:
private Cliente clienteSelecionado;
//getters e setters
E no setPropertyActionListener, atribua o valor ao objeto selecionado, e ao remover, remova através deste objeto também:
<f:setPropertyActionListener target="#{clienteMB.clienteSelecionado}" value="${item}" />
[]'s[/quote]
Nesse caso a ação de deletar vai ficar no setPropertyActionListener, certo? Então o que eu preciso colocar no action no commandButton?[/quote]
Não, no setProperty você vai atribuir o objeto na propriedade clienteSelecionado seu bem, e no commandButton você chama o método (sem nenhum argumento neste método)
[]'s[/quote]
Amigo, desculpa a demora. Estava com uns problemas.
Tentei fazer o que você falou, mas ao clicar no botão excluir não acontece nada, nem chama o método deletar.
Meu MB:
package br.com.teste.managedbean;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import br.com.teste.ejb.ClienteBean;
import br.com.teste.entidade.Cliente;
@ManagedBean
@ViewScoped
public class ClienteMB {
private Cliente cliente = new Cliente();
private Cliente clienteSelecionado = new Cliente();
private List<Cliente> lstCliente = new ArrayList<Cliente>();
public String incluirCliente(){
InitialContext ini;
try {
ini = new InitialContext();
ClienteBean clienteBean = (ClienteBean)ini.lookup("java:module/ClienteBean");
return clienteBean.salvar(cliente);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public String deletarCliente(){
InitialContext ini;
try {
ini = new InitialContext();
ClienteBean clienteBean = (ClienteBean)ini.lookup("java:module/ClienteBean");
clienteBean.deletar(getClienteSelecionado());
} catch (NamingException e) {
e.printStackTrace();
}
return null;
}
public String atualizarCliente(Cliente cliente){
InitialContext ini;
try {
ini = new InitialContext();
ClienteBean clienteBean = (ClienteBean)ini.lookup("java:module/ClienteBean");
clienteBean.atualizar(cliente);
cliente = new Cliente();
lstCliente = clienteBean.buscarCliente();
} catch (NamingException e) {
e.printStackTrace();
}
return null;
}
public List<Cliente> carregarCliente(){
List<Cliente> listaClientes = new ArrayList<Cliente>();
InitialContext ini;
try {
ini = new InitialContext();
ClienteBean clienteBean = (ClienteBean)ini.lookup("java:module/ClienteBean");
listaClientes = clienteBean.buscarCliente();
} catch (NamingException e) {
e.printStackTrace();
}
return listaClientes;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public List<Cliente> getLstCliente() {
return lstCliente;
}
public void setLstCliente(List<Cliente> lstCliente) {
this.lstCliente = lstCliente;
}
public Cliente getClienteSelecionado() {
return clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
}
Meu clienteBean:
package br.com.teste.ejb;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.com.teste.entidade.Cliente;
@Stateless
public class ClienteBean {
@PersistenceContext
EntityManager em;
public String salvar(Cliente cliente) {
em.persist(cliente);
return "PaginaListarCliente";
}
public void deletar(Cliente cliente) {
em.remove(em.getReference(Cliente.class, cliente.getId()));
}
public void atualizar(Cliente cliente) {
em.merge(em.getReference(Cliente.class, cliente.getId()));
}
public List<Cliente> buscarCliente(){
return em.createQuery("FROM Cliente").getResultList();
}
}
Meu dataTable:
<h:dataTable id="rounded-corner" value="#{clienteMB.carregarCliente()}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Fone" />
</f:facet>
<h:outputText value="#{item.fone}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Celular" />
</f:facet>
<h:outputText value="#{item.celular}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Email" />
</f:facet>
<h:outputText value="#{item.email}"/>
</h:column>
<h:column>
<h:commandButton action="#{clienteMB.deletarCliente()}" value="Excluir">
<f:setPropertyActionListener target="#{clienteMB.clienteSelecionado}" value="${item}" />
</h:commandButton>
</h:column>
</h:dataTable>