DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


ICEfaces 2.0 - Revista Java Magazine 89

O artigo trata do framework ICEfaces 2.0, que tem por objetivo facilitar a utilização de AJAX em aplicações Web baseadas em JSF 2.0, além de prover uma série de componentes visuais ricos para composição das interfaces gráficas com o usuário. O artigo descreve como instalar o framework, utilizar suas funcionalidades AJAX, como o AJAX Automático, a técnica Push e o escopo da janela, além de apresentar alguns dos seus novos componentes ricos.






ICEfaces 2.0
Desenvolvendo páginas Web com AJAX usando JSF 2.0

De que se trata o artigo:
O artigo trata do framework ICEfaces 2.0, que tem por objetivo facilitar a utilização de AJAX em aplicações Web baseadas em JSF 2.0, além de prover uma série de componentes visuais ricos para composição das interfaces gráficas com o usuário. O artigo descreve como instalar o framework, utilizar suas funcionalidades AJAX, como o AJAX Automático, a técnica Push e o escopo da janela, além de apresentar alguns dos seus novos componentes ricos.

Para que serve:
O framework ICEfaces serve para implementar de forma mais fácil páginas JSF com funcionalidades AJAX, além de prover uma série de componentes visuais ricos para a composição das interfaces gráficas com o usuário em JSF.

Em que situação o tema é útil:
O tema é útil para desenvolvedores Web em geral que desejam conhecer os frameworks disponíveis para a arquitetura Web. Em especial, ICEfaces é útil para aqueles que estejam desenvolvendo sistemas Web empregando JSF 2.0 e utilizam ou desejam utilizar a tecnologia AJAX em suas páginas.

Resumo DevMan:
À medida que a tecnologia Web avançou, suas novidades foram sendo incorporadas aos frameworks que facilitam o desenvolvimento nesta arquitetura. Não seria diferente com frameworks baseados em JSF, que foram evoluindo e incorporando diversas facilidades, dentre elas o AJAX, requisição assíncrona feita com JavaScript e que aumenta a dinamicidade das páginas Web. Recentemente foi lançada a versão 2.0 do framework ICEfaces – baseado em JSF 2.0 – que, além de trazer uma biblioteca de componentes ricos, facilita a utilização de AJAX em páginas JSF. Neste artigo, descrevemos como instalar o ICEfaces em sua aplicação Web (Listagens 1 e 2, Figuras 1 e 2) e, em seguida, apresentamos as funcionalidades trazidas pelo framework: AJAX Automático (Listagens 3 a 5, Figura 3), a técnica Push (Listagens 6 a 9, Figura 4), o escopo da janela (Listagem 10) e sua biblioteca de componentes visuais ricos (Listagens 11 a 13, Figura 5).[EOS1] 

Desde sua criação, o padrão JavaServer Faces (JSF) trouxe a ideia de componentes de interface gráfica para a Web. Segundo esse paradigma, desenvolvedores de frameworks poderiam combinar os elementos existentes (campos de formulário, painéis, tabelas, etc.) para formar um novo componente, representado por uma nova tag JSF, e utilizado pelo desenvolvedor final em suas aplicações, abstraindo toda a complexidade que se encontra por trás da tag utilizada.

A própria implementação básica do JSF oferece uma série de componentes que abstraem os elementos HTML que se encontram por trás. Por exemplo, a tag <h:panelGrid /> dispõe elementos em uma grade utilizando as tags HTML <table />, <tr />, <td />, etc., sem que o desenvolvedor da página se preocupe em como utilizar estas tags. De forma análoga, a tag <h:messages /> dispõe as mensagens presentes no atual contexto em uma lista com marcadores, utilizando-se das tags HTML <ul /> e <li />. Tal abstração facilita o desenvolvimento das interfaces pois utilizamos componentes de mais alto nível (e portanto mais fáceis de usar), sem nos preocupar com quais outros componentes estão por trás de sua implementação. Porém, muitos desenvolvedores não gostam que os elementos de mais baixo nível fiquem escondidos, pois diminui a capacidade de personalização e depuração do código.

Popular ou não, esta característica do JSF permitiu que diversas empresas e organizações de desenvolvimento de software criassem suas próprias bibliotecas de componentes. Algumas das mais conhecidas são: MyFaces Tomahawk/Trinidad/Tobago (da Apache), PrimeFaces (da Prime Teknoloji), RichFaces (da JBoss) e, nosso foco deste artigo, ICEfaces (da ICEsoft). Na seção Links, o leitor interessado encontrará os endereços dos sites destes frameworks, caso queira conhecê-los melhor.

À medida que a tecnologia Web avançou, suas novidades foram sendo incorporadas nestes frameworks. Uma das funcionalidades mais procuradas é a utilização de AJAX, que vem embutida nos componentes e alivia o desenvolvedor da necessidade de criar códigos em JavaScript. Componentes e frameworks JavaScript populares também são integrados como, no caso do ICEfaces, o CKEditor e a biblioteca YUI (veja Links).

Neste artigo, será apresentada a versão mais recente do framework, ICEfaces 2, que é baseada no JSF 2.0. O ICEfaces 2, que tem seu código-fonte aberto, é uma extensão AJAX para o JSF 2.0, facilitando a tarefa de desenvolver aplicações JSF com AJAX e tornando tal desenvolvimento mais eficiente ao prover diversas facilidades, como as que serão discutidas neste artigo. Comparando com a versão 1.8, a nova versão do ICEfaces tem melhor interoperabilidade (agora é possível utilizar componentes de terceiros), uma nova suíte de componentes com melhor desempenho, mais capacidades e acessibilidade melhorada, funcionalidade PUSH integrada, preparada para clientes móveis (ex.: celulares), tudo isso sendo ainda compatível com a versão anterior, para facilitar o upgrade.

Além disso, o ICEfaces traz o conceito de AJAX Automático baseado em duas novidades importantes do framework:"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    10 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Nelson Gomes Cardoso Junior
Olá Vitor. blz?

Estava tentado reproduzir seus exemplos do artigo sobre ICEfaces 2.0 mas quando executo boa parte dos componentes não renderiza e, os que renderiza, como o tabset, não consigo alternar as abas.
Comecei com o Eclipse e utilizando o plugin, depois tentei com o Netbeans e o mesmo problema persiste.

Rodei tanto no IE 8 qto no Chrome e nada de aparecer componentes, principalmente o dateTimeEntry

No IE consigo pegar esses erros logo que rodo a aplicação

Detalhes dos erros da página da Web

Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)
Carimbo de data/hora: Mon, 2 May 2011 23:02:46 UTC


Mensagem: 'Plugin.Base' é nulo ou não é um objeto
Linha: 115
Caractere: 3
Código: 0
URI: http://localhost:8080/ICEfaces2_Testes/faces/javax.faces.resource/animation.js?ln=org.icefaces.component.animation


Mensagem: 'lang' é nulo ou não é um objeto
Linha: 665
Caractere: 2
Código: 0
URI: http://localhost:8080/ICEfaces2_Testes/faces/javax.faces.resource/calendar.js?ln=org.icefaces.component.datetimeentry


Mensagem: Objeto esperado
Linha: 490
Caractere: 2
Código: 0
URI: http://localhost:8080/ICEfaces2_Testes/faces/javax.faces.resource/animation.js?ln=org.icefaces.component.animation

Mensagem: Objeto esperado
Linha: 490
Caractere: 2
Código: 0
URI: http://localhost:8080/ICEfaces2_Testes/faces/javax.faces.resource/animation.js?ln=org.icefaces.component.animation


Tem noção do que pode estar acontecendo??
[há +1 ano] - Responder

 

Dyego Souza Do Carmo
Você adicionou as servlets do iceFaces no web.xml ? Ele tem uma serie de filtros que adicionam javascripts... chegou a conferir ?
[há +1 ano] - Responder
 

Nelson Gomes Cardoso Junior
Olá Dyego.

Estou usando o plugin do Eclipse para ICEfaces. Não era para estar configurado?

meu web.xml está assim:



ICEfaces2_Testes

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp


Faces Servlet
javax.faces.webapp.FacesServlet
1


Faces Servlet
/faces/*
/icefaces/*


State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2
javax.faces.STATE_SAVING_METHOD
server


javax.servlet.jsp.jstl.fmt.localizationContext
resources.application


com.sun.faces.config.ConfigureListener


javax.faces.PROJECT_STAGE
Development


javax.faces.FACELETS_SKIP_COMMENTS
true


javax.faces.VALIDATE_EMPTY_FIELDS
false


Resource Servlet
com.icesoft.faces.webapp.CompatResourceServlet
1


Resource Servlet
/xmlhttp/*




desde já agradeço sua atenção
[há +1 ano] - Responder
 

Devmedia - Equipe De Moderacao
Olá Nelson,

Os erros me parecem de JavaScript. Talvez algum script esteja faltando e ele não encontra os objetos necessários.

Você poderia me enviar o código-fonte da página JSF e também o código HTML gerado no final das contas? Este segundo você deve pedir ao seu browser (geralmente clique com o botão direito na página e escolha "View Page Source" ou algo assim).

Obrigado,
- Vítor
[há +1 ano] - Responder
 

Dyego Souza Do Carmo
O IceFAces tem uma serie de configuracoes adicionais , voce deve dar uma olhada em www.icesoft.com e verificar isso...

Sei que o plugin do NetBeans faz tudo... já o do eclipse eu nao tenho ideia :)
[há +1 ano] - Responder
 

Marcelo Estruc
O codigo da classe CadastrarUsuarioBean está incorreto. Falta os métodos get e set. Sem eles não funcionou.
[há +1 mês] - Responder

 

Vítor Estêvão Silva Souza
Olá Marcelo,

Não sei como ficou na versão final na revista, mas no artigo enviado havia um comentário no código-fonte desta classe:

/* Métodos get/set para todos os atributos não-static. */


Para economizar no espaço (já que estes métodos são bastante fáceis de serem feitos e podem ser feitos automaticamente pela IDE), muitas vezes coloco um comentário indicando que eles deveriam ser adicionados pelo leitor.

De qualquer forma, obrigado pela colocação, está certíssima.

Bons estudos,
- Vítor Souza
[há +1 mês] - Responder
 

Marcelo Estruc
Vitor, acho válido você colocar essa observação para o leitor. não deixe só um comentário no código. Você está de parabéns pelo artigo. Ficou bem legal.
[há +1 mês] - Responder
 

Vítor Estêvão Silva Souza
De fato, Marcelo, merecia uma nota também no texto. Obrigado pela dica e pelo elogio! Um abraço!
[há +1 mês] - Responder
 

Marcelo Estruc
Vitor,

Imagine a seguinte situação. Dois usuarios logados no chat e de repente a internet do primeiro usuario cai. Tem como avisar ao segundo usuario que o primeiro usuario caiu? O ICefaces tem algum recurso? Tem alguam dica para isso?

Obrigado.
[há 3 dias] - Responder

 



Publicidade
Autor
Vítor Estêvão Silva Souza

Graduação em Ciência da Computação e Mestrado em Informática com ênfase em Engenharia de Software na Universidade Federal do Espírito Santo (UFES), onde trabalhou também como professor substituto.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03