Componentes visuais de especificação em JSF
Por Ingrid Chaves Carneiro Greco | 02/12/2010 | TecnologiaComponentes visuais de especificação em JSF
1 Introdução
JSF (Java Server Faces) é uma tecnologia que incorpora características de um framework MVC (Model-View-Controller) para WEB e de um modelo de interfaces gráficas baseado em eventos. Por basear-se no padrão de projeto MVC, uma de suas melhores vantagens é a clara separação entre a visualização e regras de negócio (modelo).
As tecnologias voltadas para o densenvolvimento de aplicações web têm mudado constantemente. Este arqtigo descreve um pouco sobre a mais nova tecnologia para desenvolvimento de aplicações WEB: JSF e seus componentes visuais. É claro que existe muito mais a ser dito sobre JSF.
E com a grande utilização dos chamados design patterns, principalmante no mundo Java, começaram a surgir diversos frameworks para auxiliar no desenvolvimento de aplicações web.
O design patter são aplicações que vieram para solucionar alguns problemas e no desenvolvimento web usando Java, o patter usado é o MVC (Model-View-Controller), o que veremos brevemente a seguir.
2 MVC ? Model-View-Controller
A idéia do padrão MVC é dividir uma aplicação em três camadas: modelo, visualização e controle.
O modelo é responsável por representar os objetos de negócio, manter o estado da aplicação e fornecer ao controlador o acesso aos dados. A visualização representa a interface com o usuário, sendo responsável por definir a forma como os dados serão apresentados e encaminhar as ações dos usuários para o controlador. Já a camada de controle é responsável por fazer a ligação entre o modelo e a visualização, além de interpretar as ações do usuário e as traduzir para uma operação sobre o modelo,onde são realizadas mudanças e, então, gerar uma visualização apropriada.
No JSF, o controle é composto por um servlet denominado FacesServlet, por arquivos de configuração e por um conjunto de manipuladores de ações e observadores de eventos. O FacesServlet é responsável por receber requisições da WEB, redirecioná-las para o modelo e então remeter uma resposta. Os arquivos de configuração são responsáveis por realizar associações e mapeamentos de ações e pela definição de regras de navegação. Os manipuladores de eventos são responsáveis por receber os dados vindos da camada de visualização, acessar o modelo, e então devolver o resultado para o FacesServlet.
O modelo representa os objetos de negócio e executa uma lógica de negócio ao receber os dados vindos da camada de visualização. Finalmente, a visualização é composta por component trees (hierarquia de componentes UI), tornando possível unir um componente ao outro para formar interfaces mais complexas. A figura a seguir mostra a arquitetura do JavaServer Faces baseada no modelo MVC.
3 JSF ? Características e Vantagens
JavaServer Faces oferece ganhos no desenvolvimento de aplicações WEB por diversos motivos:
? Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs prédefinidos;
? Fornece um conjunto de tags JSP para acessar os componentes;
? Reusa componentes da página;
? Associa os eventos do lado cliente com os manipuladores dos eventos do lado servidor (os componentes de entrada possuem um valor local representando o estado no lado servidor);
? Fornece separação de funções que envolvem a construção de aplicações WEB. Embora JavaServer Faces forneça tags JSP para representar os componentes em uma página, ele foi projetado para ser flexível, sem limitar-se a nenhuma linguagem markup em particular, nem a protocolos ou tipo de clientes. Ele também permite a criação de componentes próprios a partir de classes de componentes, conforme mencionado anteriormente.
JSF possui dois principais componentes: Java APIs para a representação de componentes UI e o gerenciamento de seus estados, manipulação/observação de eventos, validação de entrada, conversão de dados, internacionalização e acessibilidade; e taglibs JSP que expressam a interface JSF em uma página JSP e que realizam a conexão dos objetos no lado servidor.
4 Recursos Visuais
Sobre seus recursos visuais, o framework JSF permite a inserção, via IDE, de: folhas de estilo (CSS), comandos em JavaScript e tecnologia ajax.
Prime Faces ? Kit de componentes visuais para especificação do JSF. Ele está dividido em 3 módulos básicos:
? Componentes UI - módulo com componentes RIA. Baseado no Yahoo UI Library, controlando todo a geração pesada de JavaScript e amarrações com o lado do servidor.
? Optimus - módulo que providencia uma série de facilidades em soluções para JSF. Ele remove a grande sobrecarga de manipulação de arquivos XML, providenciando anotações baseados em container IOC Guice Framework.
? FacesTrace - módulo com o objetivo de ser utilizado como apoio de desenvolvimento.
Woodstock ? é mais uma opção de kit de componentes visuais GUI para aplicativos web baseados em funcionalidades AJAX.
OpenFeces ? é mais um kit de componentes JSF open-source baseados em AJAX com uma série de recursos interessantes que podem ser usados em aplicativos web.
JSF Sourceforge.net ? diversos componentes visuais e não-visuais disponíveis para JSF. ChartCreator, acegi-jsf, client-validators, excel-creator, htmpainel, on-load, etc.
5 Conclusão
JSF (Java Server Faces) é um framework MVC (Model-View-Controller, um padrão de arquitetura de software que permite o desenvolvimento, teste e manutenção isolado de ambos). Desenvolve aplicações Web, que permite o desenvolvimento de aplicações para a internet de forma visual, ou seja, arrastando e soltando os componentes na tela (JSP ? JavaServer Pages, uma tecnologia utilizada no desenvolvimento de aplicações para Web), definindo propriendades, etc.
JavaServer Faces é uma tecnologia bastante recente para o desenvolvimento de aplicações WEB e pouco tem se visto ainda sobre essa tecnologia. Como já mencionado, esse artigo fornece apenas uma simples introdução sobre o assunto. Existe muito mais a ser dito a respeito dessa tecnologia.
Referências
1. http://imasters.uol.com.br/artigo/13666/javaweb/javaserver_faces/
2. http://pt.wikipedia.org/wiki/JavaServer_Faces
3. Grupo de Usuários Java - http://www.guj.com.br
Junho/2010