Configurando Facelets em projeto JSF no eclipse

Após termos nosso projeto JavaServer Faces criado no eclipse, iremos configurar o facelets no mesmo. O facelets é um framework de templating feito específicamente para projetos JSF. Ele se integra de tal forma com o ciclo de vida do jsf que resulta numa melhora da performance significativa em comparação ao uso de JSP. Além disso, o facelets funciona em todos os web containers amplamente conhecidos, não impondo restrição alguma ao projeto.

1- Faça o download do facelets na versão 1.1.15, pois a versão 1.2 não é estável (e parece que não ficará tão cedo);

2- Extraia o arquivo “jsf-facelets.jar” para dentro da pasta “WebContent\WEB-INF\lib” do seu projeto JSF. Como estamos utilizando o JBoss nesse exemplo, não é necessário extrair também os outros arquivos JAR da pasta lib do facelets, pois são dependências de bibliotecas que já existem no JBoss;

3- Não basta apenas acrescentarmos a biblioteca do facelets em nosso projeto, devemos configurar algumas outras coisas para que o JSF se integre ao facelets. Acrescente as seguintes linhas ao arquivo faces-config.xml (encontrado em “WebContent\WEB-INF”):

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

4- E no mesmo local devemos incluir as seguintes linhas ao arquivo Web.xml:

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.htm</param-value>
</context-param>

<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
</context-param>

<context-param>
    <param-name>facelets.SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
</context-param>

<context-param>
    <param-name>com.sun.faces.validateXml</param-name>
    <param-value>true</param-value>
</context-param>

No primeiro parâmetro, indicamos que os arquivos físicos que utilizaremos para a apresentação tem extensão .htm.
Dessa forma, quando o facelets receber uma requisição ao endereço “bemvindo.jsf” buscará pelo arquivo “bemvindo.htm”.
Na prática, não importa a extensão escolhida, costuma-se deixar htm ou html apenas por questões históricas.

O segundo parâmetro indica ao facelets que estamos em ambiente de desenvolvimento, dessa forma ele exibe possíveis erros em uma tela amigável ao desenvolvedor, mas que não deve ser exibida futuramente ao usuário final.

O terceiro parâmetro determina ao facelets que os comentários nos códigos HTML devem ser tratados como comentários. Pois o facelets por padrão não ignora comentários () nos arquivos de apresentação.

O quarto parâmetro faz com que o facelets valide o código html das telas, só permitindo que seja utilizado XHTML.

Pronto! Dessa forma o facelets já está pronto para ser executado em seu projeto.

2 ideias sobre “Configurando Facelets em projeto JSF no eclipse

  1. Dayvson Marques

    Segui o passo a passo conforme descrito nesse artigo, e não consegui executar. Aprensenta “Http Status 404”.
    Tem alguma noção do que possa vir a ser.

    Grato.
    Dayvson Marques

  2. Rodrigo Aguas Autor do post

    Dayvson,
    Sem ter mais informações sobre o seu problema fica difícil lhe ajudar, mas tentarei.
    Você fez deploy da sua aplicação no JBoss, Tomcat ou outro?
    O servidor está em execução?
    Sabe qual é a porta que seu servidor está escutando?
    Criou uma página com extensão .htm para tratar a sua requisição? Por exemplo, acessando o endereço “localhost:[PORTA]/[APLICACAO]/pagina.jsf” você deve ter um arquivo “pagina.htm” em seu WEB-CONTENT para tratar essa requisição.

    Dê uma olhada no seguinte artigo, pode lhe ajudar.
    http://www.rodrigoaguas.com/blog/hello-world-em-jsf/

    Abraços.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *