Olá desenvolvedores, neste tutorial implementaremos um dataTable para que possamos carregar os dados em tela, porém, exibindo-os de forma estruturada. Um dataTable está diretamente ligado a uma lista de dados, assim o primeiro passo é a construção do método que irá carregar a lista.

MÉTODO PARA OBTER A LISTA

Desse modo, no DaoGeneric, na assinatura do método que implementa uma lista genérica precisamos informar por parâmetro ao JPA – Java Persistence API, a entidade persistente de onde os dados serão carregados.

Assim, como parâmetro passaremos uma classe também genérica, por meio da qual, usando o entidade.getName() obtemos o nome da entidade.

O escopo do método segue o mesmo padrão dos outros métodos, é preciso obter a entidade persistente do JPA, estabelecer a transação e iniciá-la.

O método deverá então retornar uma lista dos dados cadastrados no banco de dados, antes, porém, é preciso fazer com que o JPA obtenha a lista. Para obter a lista usaremos o createQuery que cria uma instância de Query para executar uma instrução de linguagem de consulta Java Persistence.

Como argumento é passada uma string de consulta de persistência Java, selecionando na tabela pessoa os dados a serem carregados.

Após isso, os dados serão “commitados”, isto é, enviados para serem armazenados na base de dados, a sessão será encerrada e a lista retornada.

entityTransaction.commit();
entityManager.close();

return retorno;

IMPLEMENTANDO O MÉTODO NO PESSOABEAN

No lado do PessoaBean criaremos o método para carregar a lista de pessoas, antes, porém, será preciso instanciar a lista. Obtenha ainda o método Get de List<Pessoa>.

private List<Pessoa> pessoas = new ArrayList<Pessoa>();

No método carregarPessoas() atribuiremos a consulta no banco de dados a lista. Dessa forma sempre que houver alteração na base de dados o método precisará ser chamado, isto é, quando os dados forem salvos ou excluídos. Portanto, chame o método carregarPessoas(), nos respectivos métodos remove() e salvar().

Insira no método a anotação @PostConstruct, assim, sempre que a tela for aberta e o ManagedBean for instanciado, isto é, criado na memória, o método que estiver anotado com o @PosConstruct será carregado.

IMPLEMENTANDO O DATATABLE

Agora dentro do laço de repetição for na primeirapagina.xml implementaremos o dataTable, onde os dados da implementação ficarão dentro do par de tags <dataTable>. É por meio do atributo value que apontaremos para a lista que deverá ser carregada na tela. Entretanto, para trabalharmos com os dados precisaremos também criar uma variável.

<h: dataTable “#pessoaBean.pessoas” var=”pessoa”></h: dataTable>

Dentro do escopo do dataTable construiremos as colunas onde listaremos o id, nome e outras informações que quisermos listar.

EM POUCAS PALAVRAS

Neste tutorial implementamos o método para carregar os dados e listá-los em tela com o dataTable. No momento ainda sem nenhuma estilização, mas novamente você pôde ver o poder das anotações, com o @PostConstruct.