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.