Aos que chegaram agora, para saberem como chegar até aqui, é só ver os os outros posts do blog que abordam o tema. Lembrando que a IDE usada é o eclipse. Para ver os posts anteriores, pode clicar aqui.
O PrimeFaces é uma implementação do JSF que vem aumentando de popularidade, comparando-a com os concorrentes mais famosos (RicheFaces, IceFaces). Essa evolução pode ser notada nesse gráfico do Google Trends. O showcase é bastante completo, a documentação é abrangente, tem fórum ativo, possui uma implementação para dispositivos móveis baseado no framework jQuery Mobile, vários temas disponíveis para utilização. Também é possível ver o showcase do PrimeFaces no próprio GAE.
Vamos ao que interessa , como colocar no ar a aplicação com o Primefaces!
Primeiro, faça o download do jar e coloque ele na pasta lib do projeto(projeto/war/WEB-INF/lib). A versão utilizada no tutorial será versão 2.2.1. Para funcionar, o PrimeFaces só precisa que as libs JSF estejam no projeto (jsf-api e jsf-impl), que já estão na pasta lib.
Feito isso, para testar o funcionamento do primefaces, altere o arquivo login.xhtml. Veja um exemplo de como fica o arquivo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JSF 2 + PrimeFaces</title>
</h:head>
<h:body>
<f:view contentType="text/html">
<h:form>
<p:messages />
<p:accordionPanel autoHeight="false">
<p:tab title="Login no JSF">
<h:panelGrid columns="2">
<h:outputText value="E-mail:" />
<h:inputText value="#{loginMB.mail}" required="true"
requiredMessage="Preenchimento do e-mail obrigatório" />
<h:outputText value="Senha:" />
<h:inputSecret value="#{loginMB.senha}" required="true"
requiredMessage="A senha não deve ser vazia" />
<p:commandButton value="Ok - Primefaces"
actionListener="#{loginMB.autenticar}" ajax="false" />
</h:panelGrid>
</p:tab>
</p:accordionPanel>
</h:form>
</f:view>
</h:body>
</html>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JSF 2 + PrimeFaces</title>
</h:head>
<h:body>
<f:view contentType="text/html">
<h:form>
<p:messages />
<p:accordionPanel autoHeight="false">
<p:tab title="Login no JSF">
<h:panelGrid columns="2">
<h:outputText value="E-mail:" />
<h:inputText value="#{loginMB.mail}" required="true"
requiredMessage="Preenchimento do e-mail obrigatório" />
<h:outputText value="Senha:" />
<h:inputSecret value="#{loginMB.senha}" required="true"
requiredMessage="A senha não deve ser vazia" />
<p:commandButton value="Ok - Primefaces"
actionListener="#{loginMB.autenticar}" ajax="false" />
</h:panelGrid>
</p:tab>
</p:accordionPanel>
</h:form>
</f:view>
</h:body>
</html>
Veja algumas telas do PrimeFaces funcionando.
O projeto de exemplo também pode ser visto rodando no GAE nesse link.
Por hoje é só, mas em breve mais algumas coisas sobre o PrimeFaces, JSF 2 e etc.