programação para web 2 - facom.ufu.brbacala/daw/lpw2/06 - projetocliente.pdf · projeto clientes...

10
MÓDULO Programação para Web 2 Projeto Gerenciar Clientes

Upload: dangtram

Post on 14-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

MÓDULO

Programação para Web 2

Projeto

Gerenciar Clientes

Projeto Clientes

2

• O projeto consiste em construir um aplicativo JSF para gerenciar Clientes usando um CRUD.

• O projeto será implementado em camadas Model, View, Controller e a de Integração usando DAO.

• Iremos usar um Banco de Dados contendo a tabela Cliente acessado por meio de JPA.

Camada Model

3

• Na camada Model vão ficar as classes que modelam o domínio da aplicação e que devem ser persistidos.

• Neste caso, a classe Cliente contendo as anotações para uso do JPA.

• Cliente deve ter os atributos:

– Nome

– CPF

– RG

– Data de Nascimento

– Endereço

– CEP

Pacote dao

4

• Responsável pela comunicação com o banco utilizando o JPA para salvar, listar alterar e excluir Clientes.

• Deve ser criada uma interface chamada ClienteDao, uma classe chamada ClienteDaoImpl

• Se preferir, use DAO generico para derivar a classe ClienteDaoImpl

• Crie uma classe HibernateUtil para realizar a conexão com o banco. Se preferir, pode colocar em um pacote Utils

ClienteDAO

5

public interface ClienteDao { public void save(Cliente cliente); public Cliente getCliente(long id); public List<Cliente> list(); public void remove(Cliente cliente); public void update(Cliente cliente);

}

Camada Controller

6

• Vai realizar a comunicação da Camada de Visão representada por nossas páginas JSF com o banco de dados sendo responsável por realizar as operações requisitadas nas páginas JSF e em seguida encaminhar o usuário para uma página.

• Nesta camada devem ficar os ManagedBeans que farão o papel de controladores.

View

7

• Composto por páginas JSF que irão executar o pedido de listagem, alteração, exclusão e adição de Clientes.

• O projeto precisará de duas páginas JSF: – index.xhtml

• listará os Clientes do Usuário e permitirá excluir ou alterar um listado ou criar um novo cliente

– gerenciarCliente.xhtml • realizar a inserção e alteração dos Clientes.

– As duas páginas comunicam-se diretamente com os métodos e atributos da classe ClienteController permitindo a interação de forma fácil ao banco de dados.

Index.xhtml

8

<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <h:head> <title>Gerenciador de Clientes</title> </h:head> <h:body> <h1>Gerenciador de Clientes</h1> <h:dataTable var=“cliente" value="#{clienteController.listarClientes}"> <h:column> <f:facet name="header"> <h:outputText value=“NOME"/> </f:facet> <h:outputText value="#{cliente.nome}" /> </h:column>

<h:column> <f:facet name="header"> <h:outputText value=“CPF"/> </f:facet> <h:outputText value="#{cliente.cpf}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value=“RG"/> </f:facet> <h:outputText value="#{cliente.rg}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value=“DATA NASCIMENTO"/> </f:facet> <h:outputText value="#{cliente.dtNasc}"/> </h:column>

Index.xhtml

9

<h:column> <f:facet name="header"> <h:outputText value=“ENDEREÇO"/> </f:facet> <h:outputText value="#{cliente.endereco}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value=“CEP"/> </f:facet> <h:outputText value="#{cliente.cep}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Alterar"/> </f:facet> <h:form> <h:commandButton action="#{clienteController.prepararAlterarCliente}" value="Alterar"/> </h:form> </h:column>

<h:column> <f:facet name="header"> <h:outputText value="Excluir"/> </f:facet> <h:form> <h:commandButton action="#{clienteController.excluirCliente}" value="Excluir"/> </h:form> </h:column> </h:dataTable> <br/> <h:form> <h:commandLink value="Novo Cliente" action="#{clienteController.prepararAdicionarCliente}"/> </h:form> </h:body> </html>

gerenciarCliente.xhtml

10

<h:form> Nome<h:inputText value="#{clienteController.cliente.nome}"/><br/> CPF: <h:inputText value="#{clienteController.cliente.cpf}"/><br/> RG: <h:inputText value="#{clienteController.cliente.rg}"/><br/> Nascimento: <h:inputText value="#{clienteController.cliente.dtNasc}"/><br/> Endereço: <h:inputText value="#{clienteController.cliente.endereco}"/><br/> CEP: < h:inputText value ="#{clienteController.cliente.cep}“/><br/> <h:commandButton action="#{clienteController.adicionarCliente}" value="Inserir Novo Cliente"/> <h:commandButton action="#{clienteController.alterarCliente}" value="Alterar Cliente"/> <br/> <h:commandLink action="index" value="Voltar"/>

</h:form>