Java Server Faces – Serie Frameworks Java
Autor: Amélia Pessoa | Publicado: 2012-01-18T09:12:00-08:00



Vamos então começar nossa série de estudos pelos frameworks
Java. O primeiro framework que veremos será o JSF. Vamos começar com alguns
conceitos básicos, definição de ambiente e nossa primeira lição.



O que é JavaServer
Faces? 



JSF é uma tecnologia que incorpora características de um
framework MVC para WEB e de um modelo de interfaces gráficas baseado em
eventos. Por basear-se no padrão de projeto MVC, uma de suas melhores vantagens
é a clara separação entre a visualização e regras de negócio (modelo).&nbsp; 

A idéia do padrão MVC é dividir uma aplicação em três
camadas: modelo, visualização e controle.&nbsp;
O modelo é responsável por representar os objetos de negócio, manter o
estado da aplicação e fornecer ao controlador o acesso aos dados. A
visualização representa a interface com o usuário, sendo responsável por
definir a forma como os dados serão apresentados e encaminhar as ações dos
usuários para o controlador. Já a camada de controle é responsável por fazer a
ligação entre o modelo e a visualização, além de interpretar as ações do
usuário e as traduzir para uma operação sobre o modelo, onde são realizadas
mudanças e, então, gerar uma visualização apropriada.&nbsp; 



Principais Características
e Vantagens&nbsp; 



JavaServer Faces oferece ganhos no desenvolvimento de
aplicações WEB por diversos motivos: 

• Permite que o desenvolvedor crie UIs através de um
conjunto de componentes UIs pré-definidos; 

• Fornece um conjunto de tags JSP para acessar os
componentes; 

• Reusa componentes da página; 

• Associa os eventos do lado cliente com os manipuladores
dos eventos do lado servidor (os componentes de entrada possuem um valor local
representando o estado no lado servidor); 

• Fornece separação de funções que envolvem a construção de
aplicações WEB.&nbsp; 

Embora JavaServer Faces forneça tags JSP para representar os
componentes em uma página, ele foi projetado para ser flexível, sem limitar-se
a nenhuma linguagem markup em particular, nem a protocolos ou tipo de clientes.
Ele também permite a criação de componentes próprios a partir de classes de
componentes, conforme mencionado anteriormente. 

JSF possui dois principais componentes: Java APIs para a
representação de componentes UI e o gerenciamento de seus estados,
manipulação/observação de eventos, validação de entrada, conversão de dados,
internacionalização e acessibilidade; e taglibs JSP que expressam a interface
JSF em uma página JSP e que realizam a conexão dos objetos no lado
servidor.&nbsp; 



Ambiente Utilizado



Para os estudos irei usar o NetBeans 7.1 que pode ser
baixado aqui (http://netbeans.org/index.html).
O mesmo já vem com servidor instalado e com as dependências do JSF.



Criando novo projeto



Arquivo &gt; Novo Projeto &gt; Java Web &gt; Aplicação Web





Nome e localização do projeto



Escolha o servidor de sua preferência




Importação da biblioteca JSF
Atenção: Padrão de URL do servlet JSP é como vão se chamar os arquivos controlados pelo JSF. Aqui eu optei por colocar "*.faces" para dizer que todos os arquivos com essa terminação serão do JSF. Você pode usar a nomenclatura que quiser.





Pronto. Projeto criado.


Arquivo de configuração


Vamos agora criar um arquivo de configuração para o JSF no projeto. Botão direito em cima do projeto.


Novo &gt; Configuração do JSF Faces





Depois disso abra o arquivo que você acabou de criar e no topo da aba clique em "Fluxo de página".
Este fluxo vai mostrar todas as páginas do seu projeto.


Primeira lição - Regras de navegação


No arquivo de configuração podemos controlar todo o fluxo de navegação do nosso projeto.
Ao invés de usarmos ancoras HTML e para qualquer mudança termos que mudar todas, usamos regras de navegação para indicar para onde o fluxo do programa vai ser direcionado. Numa mudança, alteramos apenas a regra que criamos no faces-config.xml.

Vamos ver na prática:

Primeiro vamos criar mais arquivos no nosso projeto. Botão direito:
Novo &gt; Página JSF
Vejam abaixo que criei Primeira.xhtml e Segunda.xhtml.











Voltando pro&nbsp;faces-config.xml você verá as 3 páginas que o projeto contém.
Clicando e segurando no canto direito do retângulo que simboliza uma página surgirá um seta (regra) que você poderá ligar com qualquer outro arquivo presente no faces-config conforme figura abaixo:





Você pode renomear essas regras conforme sua preferência:



Vamos então chamar estas regras nas páginas.
Em index.xhtml adicionei um componente chamado commandLink. O nome usado no atributo 'action' deve ser o nome de uma regra.
Obs.: Componentes&nbsp;commandLink&nbsp;precisam estar dentro de um form&nbsp;(veremos mais componentes e mais detalhes sobre eles na segunda lição)



Adicionando regras nas páginas&nbsp;Primeira.xhtml e Segunda.xhtml.












Agora vamos 'rodar' o projeto. Verifique que os links levam para as páginas marcadas na configuração.









Dúvidas? Comentários? Deixe seu recado ou use o grupo de estudos: 
https://groups.google.com/group/estudos-online.