Artigo no estilo: Curso

Por que eu devo ler este artigo:No terceiro artigo da série será desenvolvida toda a interface gráfica do sistema para gerenciamento de bibliotecas. Para isso, aprenderemos a criar as páginas utilizando os principais componentes do JSF e a associá-los a propriedades de um managed bean.

Explicaremos também o que é um managed bean, qual sua relação com a anotação @Named, do CDI, e porque usar @Named em vez de @ManagedBean.

Ainda nesse artigo, durante o desenvolvimento da aplicação, passaremos pela API do JSF mostrando de forma prática como utilizar em conjunto as classes FacesContext e NavigationHandler para navegar entre as views.

Portanto, tal conteúdo é de grande valia para os leitores que desejam aprender mais sobre uma das principais tecnologias do Java: o JavaServer Faces.

Ao longo desta série de artigos estamos desenvolvendo uma aplicação web que possibilita o gerenciamento de bibliotecas. Até o presente momento já criamos o projeto no Eclipse, configuramos o arquivo persistence.xml, realizamos o mapeamento de nossas entidades, implementamos o DAO e uma classe para gerenciar as transações. No entanto, o cliente ainda não consegue interagir com o sistema, pois ainda não criamos as páginas que irão conter a parte da interface gráfica.

Sendo assim, a partir de agora vamos desenvolver as principais páginas desta aplicação. São elas:

· _template_simples.xhtml e _template.xhtml – que representam os arquivos de template (veremos mais detalhes sobre eles adiante);

· login.xhtml – página para que o usuário do sistema possa se autenticar;

· principal.xhtml – página que contém os links que dão acesso às outras partes do sistema;

· funcionário_biblioteca.xhtml – página que permite que sejam cadastrados dados relacionados aos novos funcionários da biblioteca e um usuário e senha para cada um deles;

· emprestimo.xhtml – página que possibilita o empréstimo de livros;

· devolucao.xhtml – página para que se possa realizar a devolução dos livros emprestados.

Estas páginas irão conter os componentes visuais que compõem a interface gráfica da nossa aplicação. A camada de visão (que será composta por tais páginas) ficará separada das demais camadas pelo fato de o JSF ser um framework MVC.

Ademais, como existe essa separação de responsabilidades, a lógica de negócios deve ficar dentro dos managed beans. Em suma, a ideia central é que as páginas trabalhem em conjunto com os managed beans – que contêm o código Java com a lógica de negócio.

Dito isso, daremos sequência ao desenvolvimento do nosso sistema, criando as páginas JSF, os managed beans e algumas outras classes relativas à navegação.

Criando as páginas JSF e os Managed Beans

Com as entidades e as classes DAO prontas, iremos iniciar o desenvolvimento das páginas JSF e dos managed beans. Nossas páginas irão utilizar imagens e um arquivo .css para formatação.

Estes arquivos (que podem ser baixados do projeto exemplo disponível no GitHub) devem ser colocados na pasta resources, que precisa ser criada dentro da pasta WebContent do projeto. Por estar fora do escopo deste artigo, não exibiremos o conteúdo do arquivo CSS.

Templates

Uma boa prática que devemos adotar durante o desenvolvimento de um sistema é evitar a duplicidade de código e isso também vale para nossas páginas. Uma maneira de evitarmos isso é criando arquivos de template com a biblioteca de tags Facelets.

Um arquivo de template deve agrupar os códigos que são comuns a várias páginas. No caso da nossa aplicação, os templates definirão o cabeçalho e o rodapé, pois são coisas comuns a todas as páginas.

Fazendo uma analogia, imagine um template como se fosse uma folha de papel com buracos, e esses buracos são locais onde podemos encaixar diversos conteúdos diferentes. Assim, cada cliente do template (template client), no caso a página que usa o template, poderia inserir um conteúdo diferente em cada um desses “buracos”.

Criaremos dentro de WEB-INF dois arquivos de template: um chamado _template_simples.xhtml e outro chamado _template.xhtml. Mantê-los dentro d ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora