Artigo Java Magazine 61 - Criando templates de telas no JSF

Este artigo apresenta como instalar, configurar e usar o Facelets numa aplicação Web com JSF.

Esse artigo faz parte da revista Java Magazine edição 61. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Criando templates de telas no JSF

Configurando e usando o Facelets numa aplicação Web com JSF

Veja também as mini-entrevistas com Ed Burns, spec lead da JSR-314 :JSF 2.0 e Jacob Hookom, criador do framework Facelets

 

De que se trata o artigo:

O Facelets é um framework para desenvolver template de telas em conjunto com o JavaServer Faces. Este artigo apresenta como instalar, configurar e usar o Facelets numa aplicação Web com JSF.

 

Para que serve:

Este framework será incorporado na especificação do JSF 2.0 com algumas modificações para se tornar o mecanismo padrão para descrever uma tela Web com JSF. Ele permitirá a definição de templates de telas para promover o reuso e facilitar a manutenção do layout e padrão visual das interfaces Web.

 

Em que situação o tema é útil:

Como o Facelets se tornará uma tecnologia padrão e mantida pelo JCP em conjunto com o JSF, será o mecanismo que substituirá o JSP no processo de definição de uma tela Web. O Facelets no JSF permitirá descrever a camada de apresentação de uma aplicação Web. Apesar da nova especificação JSF ainda suportar JSP, o Facelets será considerado o mecanismo preferencial que todo desenvolvedor deverá conhecer para conseguir usar os novos recursos do JSF 2.0.

 

Criando templates de telas no JSF – Resumo DevMan:

O Facelets é um framework para suporte ao desenvolvimento de telas na Web com o JavaServer Faces (JSF), assim como o Tiles é para o Struts e os Tag Files são para o JSP. Esta tecnologia será incorporada à especificação JSF 2.0 para substituir o JSP como mecanismo padrão para gerar a camada view de uma aplicação Web. Além disso, o Facelets permitirá a definição de templates de telas e a implementação de novos componentes visuais sem a necessidade de escrever códigos Java.

Introdução

O Facelets é uma tecnologia de código aberto e uso livre, sob a licença CDDL 1.0, que estabelece uma linguagem de templates para suportar a criação da árvore de componentes das telas JSF. Esta tecnologia permite o reuso de padrões de telas e a composição de componentes JSF para a formação de novos componentes.

JavaServer Faces (JSF) é uma tecnologia padronizada e mantida pelo Java Community Process (JCP) para o desenvolvimento de aplicações que permite o uso de um modelo de componentes para definição e renderização de uma tela de sistema na Web. Como o JSF permite o desenvolvimento baseado no padrão de projeto MVC, o Facelets é a parte 'View' deste padrão a ser incorporada na especificação para facilitar o desenvolvimento de telas Web com JSF. Isto tornará o Facelets o mecanismo padrão para desenvolvimento de aplicações Web e não mais JSP, que continuará a ser uma alternativa possível, mas não preferencial. Veja a entrevista com Ed Burns, líder da especificação do JSF 2.0 no JCP, no quadro anexo com comentários sobre como o Facelets influenciará na nova especificação.

Neste artigo, faremos uma “introdução completa” ao Facelets: discutindo tecnicamente seus recursos, construindo uma aplicação simples e mostrando como utilizar a tecnologia nos principais IDEs.

O que são templates

Durante o desenvolvimento de uma aplicação web com diversas telas, percebe-se que várias destas têm uma estrutura semelhante. Para promover o reuso desta estrutura comum e facilitar a futura manutenção do padrão visual deste sistema, são utilizados um ou mais modelos de páginas (templates). Um template define um desenho padrão para as telas e áreas substituíveis para a troca de conteúdo durante a renderização da interface para o usuário.

Existem diversas maneiras de realizar a definição de templates e a composição das diversas telas do sistema com estes templates.

Templates em aplicações Web tradicionais: JSP/Servlets

Em aplicações Web tradicionais este problema é resolvido criando uma página JSP que inclui outras páginas JSP que representam cada parte que compõe a página, aumentando o reuso e facilitando a manutenção das páginas.

Templates em aplicações Struts

Em aplicações Struts, este problema foi resolvido muito eficientemente com o framework Tiles, criado como um plugin para o Struts.

Templates em aplicações JSF

Ao tentar aplicar as lições aprendidas no desenvolvimento de aplicações Web com JSP/Servlets e Struts à JSF, alguns desafios foram encontrados:

·Inclusão de páginas dificultada devido ao Content Interweaving Problem, que causava o embaralhamento dos componentes da página apresentada pelo browser quando as páginas incluídas utilizavam componentes JSF aninhados em elementos HTML. Veja o artigo “Improving JSF by dumping JSP” de Hans Bergsten;

·Incompatibilidade de utilização do framework Tiles em aplicações baseadas em MyFaces e JSF RI, tornando praticamente inviável sua utilização com a implementação de referência JSF;

·Dificuldade na criação de componentes visuais compostos por outros componentes visuais.

 

Foi neste cenário que o framework Facelets nasceu. Um mecanismo de template baseado em XML, compatível com qualquer implementação de JSF (criado especificamente para JSF), permitindo mesclar HTML e JSF indiscriminadamente. Diferentemente das páginas JSP que foram inventadas muito antes.

O desenvolvedor Jacob Hookom criou um projeto open source e o batizou de Facelets. Este projeto tem a intenção de resolver as limitações citadas e prover uma tecnologia alternativa ao JSP, atendendo às necessidades especificas do JSF. Veja no quadro anexo uma entrevista com este desenvolvedor que nos conta qual foi a sua principal motivação ao criar o Facelets.

Instalando o Facelets numa aplicação Web

O download do Facelets pode ser realizado a partir da página do projeto, hospedada no site java.net com a seguinte URL: https://facelets.dev.java.net/.

Um arquivo zip com uma versão estável pode ser obtido a partir da página de download. Este arquivo conterá o código fonte, a documentação em formato Javadoc da API, uma documentação texto para o desenvolvedor, aplicações Web de exemplo e os JARs necessários para usar o Facelets.

Após o download, será necessário criar uma aplicação Web e incorporar os JARs necessários para utilizá-lo. O Facelets deve ser usado numa aplicação com suporte ao JSF 1.1 ou 1.2. Esta aplicação deve ter instalado uma implementação de JSF como, por exemplo, o JSF-RI ou o MyFaces.

Apresentamos neste artigo um passo a passo para criar uma aplicação JSF com Facelets no Eclipse ou NetBeans utilizando JSF 1.2. Para isso, o arquivo jsf-facelets.jar deve ser adicionado ao diretório /WEB-INF/lib" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados