Depois de muita pesquisa, acabei que consegui resolver kkkk
Basicamente era criar uma classe ManagedBean (ClienteBean) para adicionar os clientes no array e também listar, e remover:
package com.beans.modelo;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="clienteBean")
@SessionScoped
public class ClienteBean {
private List<Cliente> clientes;
public ClienteBean() {
clientes = new ArrayList<>();
clientes.add(new Cliente("Michael", "Rua José Luiz, 123", "(15) 1234-5678"));
clientes.add(new Cliente("Claudio", "Rua da Alameda, 456", "(21) 9876-5432"));
clientes.add(new Cliente("Felipe", "Av. São Paulo, 789", "(31) 3214-5678"));
clientes.add(new Cliente("Robert", "Av. Ipanema, 1011", "(41) 5432-1234"));
clientes.add(new Cliente("Carlos", "Av. Itavuvu, 1313", "(51) 7654-3214"));
}
public void removerCliente(Cliente cadaCliente) {
clientes.remove(cadaCliente);
}
public List<Cliente> getClientes() {
return clientes;
}
}
Também precisei criar uma classe Cliente:
package com.beans.modelo;
public class Cliente {
private String nome;
private String endereco;
private String telefone;
public Cliente(String nome, String endereco, String telefone) {
this.nome = nome;
this.endereco = endereco;
this.telefone = telefone;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
E por último, no .xhtml fazer as referencias para o ManagedBean:
<!DOCTYPE html>
<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.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Clientes</title>
</h:head>
<h:body>
<h:form id="formId">
<p:panel id="panelId">
<h:dataTable value="#{clienteBean.clientes}" var="cliente">
<h:column>
#{cliente.nome}
</h:column>
<h:column>
#{cliente.endereco}
</h:column>
<h:column>
#{cliente.telefone}
</h:column>
<h:column>
<p:commandButton value="X" action="#{clienteBean.removerCliente(cliente)}" update=":formId:panelId" />
</h:column>
</h:dataTable>
</p:panel>
</h:form>
</h:body>
</html>
Ocorreu um erro de atualizar a tabela. No .xhtml eu estava usando update="dataTable"
e por algum motivo que eu não sei, estava lançando uma exception dizendo que não era possível localizar o componente "dataTable".
Então ao invés de atualizar o dataTable diretamente, eu estou atualizando o panelId