Rafael Benevides bio photo

Rafael Benevides

In a serious relationship with Software Development

Email Twitter Facebook Google+ LinkedIn Instagram Github Last.fm Youtube

Durante o mês de fevereiro aproveitei a oportunidade para conhecer mais sobre o Facelets. Para quem não teve a oportunidade de trabalhar (ou brincar) com o Facelets, mas sempre ouviu falar muito e queira conhecer algo, este Post é para você.

É comum termos a impressão de que o Facelets é “apenas” um Framework de Templates (assim como o Tiles), mas este é um dos maiores enganos, por quê além disto, o Facelets é uma nova forma de se pensar/trabalhar com o JSF.

Uma das funcionalidades que mais gosto é a conversão automática de HTML em componentes JSF. Geralmente a equipe de Multimedia (que não conhece e não possui interesse no JSF) entrega o protótipo aprovado em “html puro”. Após isto, a equipe de desenvolvedores Web devem renomear o html para jsp, e em cada html trocar os < input type=text /> pelos < h:inputText />. Entretanto, existe um atributo especial “jsfc” que pode ser adicionado no seu XHTML informando qual o tipo de componente jsf que deve ser utilizado. Ex.: < input jsfc=“h:inputText” required=“true” id=“name” value=“#{person.name}” />. O mesmo pode ser feito com mensagens: .

A segunda grande vantagem, igualmente importante, é que o Facelets melhora a performance em 30% a 50%!!!! Isto só é possível por quê o Facelets não utiliza o engine do JSP (que se transforma em um servlet) e usa diretamente o XHTML como tecnologia de view do JSF (Todos que achavam que o JSF não é extensível, estão enganados). O uso do XHTML como view do Facelets elimina a necessidade de se escrever tags que geram problemas quando esquecidas de serem colocadas e quando colocadas, geram códigos difíceis de serem compreendidos.

Sem contar a possibilidade de criarmos templates, também é possível criarmos componentes reutilizáveis tão facilmente que se torna “coisa de criança” (só quem escreveu algum componente JSF sabe a penúria que é)!

Para que este post não fique gigantesco. Pretendo dividi-lo em algumas partes:

  1. Este post – Definição e instalação
  2. Exemplos simples (template)
  3. Exemplos avançados e Ferramentas



Instalação

O procedimento para instalação segue passos simpes:

  1. Realize o download da Distribuição do facelets
  2. Copie o jsf-facelets.jar para o diretório WEB-INF/lib de sua aplicação
  3. Adicione o parâmetro do Facelets no arquivo web.xml .
<context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml< /param-value>
</context-param>

4. Adicione o FaceletViewHandler no arquivo faces-config.xml.

<application>
  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>

Espero com este post ter despertado o interesse no Facelets. Se esta introdução não despertar o interesse de ler os próximos posts, espero que este comentário do colega Rogério Pereira Araújo desperte :) . Afinal todos nós buscamos produtividade.

Ah!E quem souber qual a tag para formatar códigos no Jroller, e puder me informar, eu ficarei agradecido. Vocês devem ter percebido que foi feito um “gato” para não renderizar as tags HTML

Até o próximo post…