Introdução Características Alguns Pontos Negativos

Propaganda
JSF
Introdução
O uso de design patterns no desenvolvimento de páginas web veio para
resolver o problema da manutenção dessas aplicações, e no caso do Java, o
padrão utilizado é o MVC (Model View Controller).
O JavaServer Faces (JSF) é uma tecnologia que incorpora características de
um framework MVC para a Web e de um modelo de interfaces gráficas
baseado em eventos.
A ideia do MVC é dividir uma aplicação em três camadas: modelo,
visualização e controle. No JSF, o controle é composto por um servlet
denominado FacesServlet, por arquivos de configuração e por um conjunto de
manipuladores de ações e observadores de eventos. O FacesServlet é
responsável por receber requisições da Web, redicioná-las para o modelo e
então remeter uma resposta. Os arquivos de configuração são responsáveis por
realizar associações e mapeamentos de ações e pela definição de regras de
navegação. Os manipuladores de eventos são responsáveis por receber os
dados vindos da camada de visualização, acessar o modelo, e então devolver o
resultado para o FacesServlet.
Características
Permite ao desenvolvedor criar UIs (User Interfaces) através de um conjunto
de componentes pré-definidos;
Fornece um conjunto de tags JSP para acessar os componentes;
Reusa componentes da página;
Associa os eventos do lado cliente com manipuladores dos eventos do lado
servidor;
Fornece separação de funções que envolvem a construção de aplicações WEB.
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 de marcação em particular, nem a protocolos ou tipos de clientes.
O JSF possui dois principais componentes: Java APIs para a representação de
componentes UI e o gerenciamento de seus dados, 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.
Alguns Pontos Negativos
Documentação inferior à do JSP;
Maior opacidade na execução, debug e otimizações;
Rigidez da abordagem MVC;
Curva de aprendizagem.
Arquitetura
Aplicações JSF utilizam como padrão a interceptação HTTP via Servlet Faces
e produz HTML. Sua arquitetura permite adicionar novos elementos, gerando
outras características, possibilitando criar páginas usando eventos, listeners e
componentes como o seu irmão Java Swing.
Fig. 1 - Arquitetura JSF
O Modelo de JSF
Para que o JSF funcione, registramos a classe FacesServlet no deployment
descriptor (web.xml). Ao fazer isso, os pedidos são controlados pela classe
javax.faces.webapp.FacesServlet (o controller do MVC), uma implementação
de javax.servlet.Servlet, roteando o tráfego e administrando o ciclo de vida
dos beans e componentes de interface do usuário (UI).
Os componentes do UI são organizados em uma estrutura de árvore onde,
cada componente, pode ser associado com métodos e atributos de um bean.
Cada componente também pode ser associado com uma função de validação
ou classe.
Ciclo de Vida
Fig. 2 - O ciclo de vida do JSF
Restaurar Apresentação: esta fase inicia o processamento da requisição do
ciclo de vida por meio da construção da árvore de componentes do JSF.
Aplicar Valores Requisitados: nesta fase, quaisquer novos valores inseridos
são extraídos e armazenados por seus apropriados componentes. Se o valor do
componente não for uma String, então ele é convertido para o seu
determinado tipo.
Processar Validações: depois do valor de cada componente ser atualizado, na
fase de processo de validações, os componentes serão validados naqueles
valores, se necessário. Um componente que necessita de validação deve
fornecer a implementação da lógica de validação.
Atualizar Valores do Modelo: alcança-se essa fase após todos os
componentes serem validados. Nesta fase são atualizados os dados do modelo
do aplicativo. Na página em que foi criada para enviar um texto, a informação
digitada foi armazenada no Managed Bean durante esta fase.
Invocar Aplicação: durante esta fase, a implementação JSF manipula
quaisquer eventos do aplicativo, tal como enviar um formulário ou ir a outra
página através de um link. Estes eventos são ações que retornam geralmente
uma string que está associada a uma navegação no qual se encarrega de
chamar a página determinada.
Renderizar Resposta: esta é a fase final, ao qual é renderizada a página. Se
este é um pedido inicial para esta página, os componentes são acrescentados à
apresentação neste momento. Se este é um postback, os componentes já foram
acrescidos à apresentação. Se há mensagens de conversão ou erros de
validação e a página contém um ou mais componentes ou um componente ,
estes serão exibidos.
Referências
http://www.guj.com.br/content/articles/jsf/jsf.pdf
http://www.edsongoncalves.com.br/tag/javaserver-faces/
http://docs.oracle.com/javaee/6/tutorial/doc/bnacj.html#bnacp
http://www.slideshare.net/JorgeWilliamRodrigues/introduo-a-jsf
Download