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 DAOData 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.