JavaServer Faces
JavaServer Faces | |
---|---|
Versão estável | 2.2.5 (Mojarra Reference Implementation) (8 de janeiro de 2014 | )
Escrito em | Java |
Gênero(s) | Framework de aplicação web |
Página oficial | javaserverfaces |
JavaServer Faces (JSF) é um framework MVC baseado em Java para a construção de interfaces de usuário baseadas em componentes para aplicações web. Possui um modelo de programação dirigido a eventos, abstraindo os detalhes da manipulação dos eventos e organização dos componentes, permitindo que o programador se concentre na lógica da aplicação.
Foi formalizada como um padrão através do Java Community Process e faz parte da Java Platform, Enterprise Edition.
JSF 2 utiliza Facelets como seu sistema de template padrão. Outras tecnologias da camada de visão, como XUL também podem ser empregadas. Em contraste, JSF 1.x utiliza JavaServer Pages (JSP) como seu sistema de template padrão.
Histórico
O JavaServer Faces ganhou expressão na versão 1.1 quando implementado pela comunidade utilizando a especificação 127 [1] do Java Community Process [2], evidenciando maturidade e segurança.
Hoje ele está na versão 2.0 da especificação 252 [3] do JCP. A fundação Apache vem realizando esforços na implementação da especificação através do projeto MyFaces. O reconhecimento do trabalho é visto por diversas empresas, tanto é que a Oracle doou os fontes do ADF Faces, conjunto de mais de 100 componentes JSF, para o projeto MyFaces que o denominará de Trinidad.
O JSF é atualmente considerado pela comunidade Java como a última palavra em termos de desenvolvimento de aplicações Web utilizando Java, resultado da experiência e maturidade adquiridas com o JSP/Servlet (Model1), Model2 (MVC) e Struts.
Versões da JSF
- JSF 2.2 (16/04/2013) - JSF 2.2 introduziu novos conceitos como visões sem estado, o fluxo de página e a capacidade de criar contratos de recursos portáteis.[4]
- JSF 2.1 (22/10/2010) - Versão de correção da versão 2.0. Apenas uma quantidade muito menor de mudanças de especificação.[5][6]
- JSF 2.0 (28/06/2009) - Maior versão para facilidade de uso, funcionalidade melhorada e desempenho. Coincide com Java EE 6.
- JSF 1.2 (11/05/2006) - Muitas melhorias nos sistemas centrais e API. Coincide com Java EE 5. Adoção inicial em Java EE.
- JSF 1.1 (27/05/2004) - Versão de correção de bugs. Não há mudanças de especificação.
- JSF 1.0 (11/03/2004) - Especificação inicial liberada.
Como ela trabalha
JavaServer Faces é baseada em um modelo de desenho de IU (interface de usuário) baseada em componentes, usando arquivos XML chamados de modelos de visão ou Facelets views. Os pedidos são processados pelo FacesServlet, que carrega o modelo de visão adequado, constrói uma árvore de componentes, processa os eventos e apresenta a resposta, normalmente na linguagem HTML, para o cliente. O estado de componentes de interface do usuário e outros objetos de interesse de escopo, é salvo no final de cada pedido em um processo chamado stateSaving (nota: transiente true) e restaurado na próxima criação desta visão. Objetos e estados podem ser salvos ou no cliente ou no servidor.
Características
- 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;
- Reutiliza componentes da página;
- Associa os eventos do lado cliente com os manipuladores dos eventos do lado do 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.
- Utiliza Ajax em alguns de seus componentes tornando alguns processos mais rápidos e eficientes.
Ciclo de vida

Ciclo de vida do JSF é o nome dado à sequência de processamento realizada na implementação JSF para a geração das visões. O JSF, diferente de outros frameworks, possui um processamento de requisição dividido em seis fases:
- Restauração da visão - o objetivo principal desta fase é construir a árvores de componentes.[7] Ela utiliza o template e cria a árvore inicial através da análise da requisição. Após isto, ela salva o estado da árvore no objeto
FacesContext
. Nas requisições subsequentes, ela cria a árvore do estado e procede a execução do resto do ciclo de vida. - Aplicação dos valores de requisição - o JSF pega cada componente da árvore começando com a raiz e a cria ou recupera do objeto
FacesContext
. Cada componente na árvore gerencia seus próprios valores e toma-os dos parâmetros, cookies e cabeçalhos da requisição HTTP. - Validações de processo - o JSF realiza a conversão e validação sobre todos os componentes começando com o raiz. O valor submetido de cada componente é convertido em um objeto e validado chamando-se o validador registrado. O JSF salva o valor submetido. Se ocorrer um erro durante a conversão ou validação, o ciclo de vida escapa diretamente para a fase de "apresentação da resposta".
- Atualização de valores de modelo - durante esta fase, o valor do componente é passado para o modelo através da atualização das propriedades dos backing beans.
- Invocação da aplicação - a manipulação de evento para cada ação e ouvidor de ação é executada começando com o(s) ouvidor(es) de ação e então a chamada do método de ação.
- Apresentação da resposta
Recursos visuais
O framework JSF permite a inserção, via IDE, de:
- Folhas de estilo (CSS);
- Comandos em JavaScript;
- Metodologia Ajax.
JSF inclui
- Suporte a internacionalização e acessibilidade;
- Um conjunto padrão de componentes de interface de usuário que possibilitam validação padronizada;
- Duas bibliotecas de etiqueta ("tag libraries") especiais do JavaServer Pages (JSP) para expressar a interface do JavaServer Faces dentro de uma página JSP;
- Um modelo de eventos do lado servidor ("server-side event model");
- Gerência de estados;
- Managed Beans;
- Linguagem de Expressão Unificada ("Unified Expression Language") para JSP 2.0 e JSF 1.2.
Ferramentas de desenvolvimento
- Eclipse
- Java Studio Creator
- JBuilde
- JDeveloper
- MyEclipse
- NetBeans
- Rational Application Developer for WebSphere Software
- Red Hat Developer Studio
- Intelij
Referências
- ↑ Java127
- ↑ JCP
- ↑ Java252
- ↑ http://blog.oio.de/2013/04/16/jsf-2-2-jsr-344-is-final/
- ↑ http://blog.oio.de/2010/11/24/jsr-000314-javaservertm-faces-2-1/
- ↑ Bosch, Andy (29 de novembro de 2010). «Was ist neu in JSF 2.1» (em German). it-republik.de. Consultado em 19 de fevereiro de 2013
- ↑ Eclipse documentation - Árvore de componentes
Bibliografia
- CORDEIRO, Gilliard (2012). Aplicações Java para a web com JSF e JPA 1 ed. [S.l.]: Casa do Código. 978-85-66250-01-5 Parâmetro desconhecido
|Autor=
ignorado (|autor=
) sugerido (ajuda); Parâmetro desconhecido|Páginas=
ignorado (|páginas=
) sugerido (ajuda); Ligação externa em|Título=
(ajuda)
- LUCKOW, Décio Heinzelmann; MELO, Alexandre Altair de (2010). Programação Java para a Web. Aprenda a desenvolver uma aplicação financeira pessoal com as ferramentas mais modernas da plataforma Java 1 ed. [S.l.]: Novatec. ISBN 978-85-7522-238-6 Parâmetro desconhecido
|Autor=
ignorado (|autor=
) sugerido (ajuda); Parâmetro desconhecido|Páginas=
ignorado (|páginas=
) sugerido (ajuda); Ligação externa em|Título=
(ajuda)