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

JSF com Ajax usando ICEfaces

Conheça mais uma opção para suas aplicações web

Aprenda a utilizar este poderoso conjunto de componentes JSF open source para construir aplicações web com suporte a Ajax, usando o IDE Eclipse e plug-ins

Existem várias implementações da especificação JavaServer Faces (JSF), por exemplo a implementação de referência da Sun e o Apache MyFaces. Há também diversos componentes que podem ser agregados à implementação usada, oferecendo recursos além dos previstos pela especificação JSF. Exemplos são o Tomahawk do MyFaces e o ICEfaces, o qual apresentaremos nesse artigo.

O ICEFaces é um conjunto de componentes recentemente tornado open source, desenvolvido pela ICESoft. Tem por finalidade integrar as tecnologias JSF e Ajax de forma “nativa”. Ou seja, todos os componentes do ICEfaces são componentes JSF que dão suporte ao Ajax.

Neste artigo apresentaremos o ICEfaces, desde sua integração com o Eclipse até um exemplo inicial utilizando esta tecnologia.

Instalando os plug-ins

Para construir uma aplicação web com ICEfaces é preciso configurar alguns servlets no descritor web (web.xml) da sua aplicação, colocar os JARs do ICEfaces no diretório lib, e declarar a taglib correspondente nos cabeçalhos das páginas JSP.

Existe um ótimo plug-in que agrega o suporte ao ICEfaces no Eclipse e realiza todas estas tarefas. Ele pode ser obtido no site icefaces.org/main/downloads/os-downloads.iface e se chama ICEfaces-Eclipse-JSF. Na Listagem 1 está parte do código do web.xml gerado por esse plug-in. Observe que existe um novo mapeamento, o *.iface, que aponta para o servlet PersistentFacesServlet, fornecido pelo ICEfaces. Note que ainda a configuração do mapeamento *.faces, através do qual o ICEfaces invoca o FacesServlet (o servlet de controle do JSF) após ter recebido a requisição. Por sua vez, o JSF invoca a página JSP (veja o esquema na Figura 1).

 

 

imagem

Figura 1. Fluxo de chamadas do ICEFaces[LG1] 

 

Listagem 1. web.xml gerado pelo plug-in.

<web-app id="WebApp_ID">

  <display-name>calendario</display-name>

    ...

  <servlet>

   <servlet-name>Faces Servlet</servlet-name>

   <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

   <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet>

   <servlet-name>Persistent Faces Servlet</servlet-name>

   <servlet-class>

     com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet

   </servlet-class>

   <load-on-startup>1</load-on-startup>

  </servlet>

    ...

  <servlet-mapping>

   <servlet-name>Persistent Faces Servlet</servlet-name>

   <url-pattern>/xmlhttp/*</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

   <servlet-name>Persistent Faces Servlet</servlet-name>

   <url-pattern>*.iface</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

   <servlet-name>Persistent Faces Servlet</servlet-name>

   <url-pattern>*.faces</url-pattern> ...

Quer ler esse conteúdo completo? Tenha acesso completo