Olá desenvolvedores, neste tutorial iremos proceder com a gravação dos dados de telefone para o usuário. No tutorial “PASSAGEM DEPARÂMETROS ENTRE TELAS” preparamos a página telefone.xhtml para receber o cadastro de telefones. Desse modo deixamos preparado também o ManagedBean para a tela em questão, e promovemos além da navegação entre páginas, a navegação com passagem de parâmetros.
IMPLEMENTANDO O DAO
O primeiro passo para gravar estes novos dados é a criação de um novo DAO – Data Access Object (Objeto de Acesso à Dados). o DAO é a camada do sistema (pacotes, classes e métodos) que abstrai todo o acesso ao banco de dados separadamente da lógica de negócio da aplicação.
No package dao crie a classe DaoTelefones. Esta classe receberá uma entidade que estenderá ao DaoGeneric, para qual passaremos como parâmetro a Entidade TelefoneUser().
public class DaoTelefones<E> extends DaoGeneric<TelefoneUser> {}
No ManagedBean, Telefone ManagedBean instanciaremos o DaoTelefone que trabalhará com a Entidade TelefoneUser(). Crie também um objeto de telefone e atribua para ambos os métodos Getter and Setter.
private DaoTelefones<TelefoneUser> daoTelefone = new DaoTelefones<telefoneUser>();
private TelefoneUser telefone = new TelefoneUser();
COSNTRUINDO O CADASTRO
Na página telefone.xhtml construiremos o formulário de cadastro de telefone, desse modo dentro da estrutura h:form, que inclusive já implementa o componente de mensagens h:messages, inclua o h:panelGrid.
O h:panelGrid terá duas colunas, onde a primeira, h:inputLabel, será de identificação dos campos, como o nome do usuário, que por sua vez será exibido por meio do h:outputLabel.
Os próximos campos a serem implementados serão para receber o número do telefone e o tipo dele.
O campo de entrada de dados que receberá o número do telefone deverá estar precedido de um h:outputLabel para identifica-lo. Assim, o campo de entrada inputText deverá por meio do atributo value atribuir o número do telefone ao ManagedBean correspondente. Repita o processo para o campo destinado a receber o “tipo de telefone”.
Por hora implementaremos apenas o botão de “salvar”. Este botão será um componente do tipo h:commandButton que renderiza um elemento de entrada HTML do tipo submit, diferente do h:commandLink que renderiza um elemento do tipo âncora. O botão invocará o método salvar() implementado na classe TelefoneManagedBean.
MÉTODO SALVAR()
No TelefoneManagedBean implementaremos o método salvar() que deverá retornar os dados para a mesma tela. Porém, antes de salvar é preciso “setar” o telefone para o usuário que está sendo carregado em tela, amarrando o número cadastrado ao usuário correspondente.
public String salvar(){
telefone.setUsuarioPessoa(user);
}
E como toda transação do banco de dados passa obrigatoriamente pela classe DAO, o DaoTelefone será o responsável por atribuir o número de telefone. Para cadastrar mais de um número de telefone para um único usuário, basta instanciar iniciando um novo cadastro de telefone para o mesmo usuário. Por fim se os dados forem salvos com sucesso, exibiremos uma mensagem informando ao usuário.
EM POUCAS PALAVRAS
Neste tutorial criamos a tela de cadastro de telefone, bem como implementamos o método salvar, de forma que é possível gravar mais de um número de telefone para o mesmo usuário.