Olá desenvolvedores, neste tutorial implementaremos o carregamento de dados do telefone para o usuário “selecionado”. Em “PASSAGEM DE PARÂMETROS ENTRE TELAS” implementamos a navegação entre telas com passagem de parâmetros fazendo com que dessa forma os dados em memória não fossem perdidos. No tutorial anterior, criamos o método responsável pelo armazenamento dos registros de telefone na base de dados.
Os registros de telefone estão amarrados aos registros do usuário correspondente. Assim, tendo implementado corretamente, o Hibernate entenderá que terá que carregar os dados das tabelas usuário e telefones de forma “amarrada”. Entenda, quando carregamos o usuário, carregamos junto a instância de telefone. Neste tutorial, o que iremos fazer é carregar os dados de telefone, exibindo-os em uma tabela na mesma página do cadastro.
TABELA DE EXIBIÇÃO DE DADOS
Na página de cadastro de telefones, telefone.xhtml, implemente abaixo do formulário de cadastro um segundo h:form. Defina para este novo “formulário” um id único, no escopo do h:form, inclua o componente usado para exibir dados de forma tabular, h:dataTable.
No h:dataTable o value aponta para a lista de registro de telefones do usuário dentro do telefoneManagedBean. Definiremos também uma variável.
Para adicionar um título a tabela utilizamos o f:facet, com o atributo name, definimos se este componente será um cabeçalho ou rodapé, no nosso caso será um header – cabeçalho.
<f:facet name=“header”>Lista de Telefones</f:facet>
Os próximos passos compreendem a criação das colunas. Na tag do componente h:column definiremos a largura da coluna. Do mesmo modo que fizemos com o título da tabela, utilizaremos o f:facet para definir um cabeçalho para cada coluna. E por fim, o valor que será exibido em tela, para isso utilizamos um componente de saída de dados, h:outputText, apontando, por meio da variável “fone” que definimos anteriormente, para o valor correspondente. Repita o processo para as colunas referentes ao número e o tipo do telefone.
ADENDO NO MANAGEDBEAN
Quando clicamos para salvar um registro de telefone a tabela precisa atualizar esses dados, isto é, ela precisa ser recarregada. Assim, no método salvar(), logo após a instância de um novo registro, adicione a linha de código abaixo, para que na fase de processamento o método possa buscar o número de telefone na base de dados.
user = daoUser.pesquisar(user.getId(), UsuarioPessoa.class);
EM POUCAS PALAVRAS
Neste tutorial, implementamos a tabela para exibir na mesma tela os registros de telefones cadastrados. E adicionamos uma linha de código ao método salvar() para que após a gravação destes registros no banco, a tabela seja recarregada exibindo os novos dados.