JSF com MyFaces e Tomahawk

Aprenda a utilizar os recursos do MyFaces. Use a implementação do JavaServer Faces da Apache, considerada a mais sólida e confiável, e conheça um conjunto de tags JSF poderoso.

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

Clique aqui para ler esse artigo em PDF.

JSF com MyFaces e Tomahawk

Aprenda a utilizar os recursos do MyFaces

Use a implementação do JavaServer Faces da Apache, considerada a mais sólida e confiável, e conheça um conjunto de tags JSF poderoso.

Uma das implementações do JavaServer Faces mais utilizada atualmente é o MyFaces, um projeto da Apache Software Foundation, que vem crescendo rapidamente e hoje vai muito além da especificação JSF. Além do MyFaces Core, a implementação do JSF em si, há vários subprojetos do MyFaces que fornecem componentes adicionais, trazendo suporte a Ajax e à vinculação com dados, entre outras funcionalidades importantes no desenvolvimento web.

Neste artigo apresentaremos o Apache MyFaces em geral, e criaremos um exemplo que faz uso dos componentes JSF fornecidos pelo mais popular dos seus subprojetos, o Tomahawk.

Projetos do MyFaces

Muitas das funcionalidades que diferenciam o MyFaces estão nos seus subprojetos, que apresentamos brevemente a seguir:

§        Tomahawk – O Tomahawk é o principal e mais utilizado subprojeto do MyFaces. Ele possui uma grande quantidade de componentes visuais, como menus, tabelas com ordenação interativa, calendários e até um editor de HTML. Já há versões estáveis disponíveis para uso em produção.

§        ADF Faces / Trinidad – O ADF Faces inclui mais de 100 componentes JSF. Foi desenvolvido originalmente pela Oracle como uma implementação completa do padrão JSF e depois doado à Apache Software Foundation. Embora os componentes estejam bastante maduros, o projeto está atualmente incubado no projeto MyFaces. Quando sair da incubação, assumirá o nome “Trinidad”.

§        Tobago – Além de ser um conjunto de componentes JSF que funciona sobre a implementação do MyFaces, o principal objetivo do Tobago é tornar mais ágil o desenvolvimento de aplicações web. O Tobago fornece um gerenciador de layouts que organiza automaticamente os componentes na página, não sendo necessário o uso de tabelas para esse objetivo.

§        Sandbox – O projeto Sandbox consiste em componentes JSF ainda em fase de desenvolvimento, e que futuramente podem fazer parte do Tomahawk.

A aplicação de exemplo

Para ilustrar o uso do MyFaces, vamos construir uma agenda de contatos, conforme ilustrado na Figura 1. O exemplo utiliza vários componentes padrão do JSF (fornecidos pelo MyFaces Core) e também diversos outros incluídos com o Tomahawk.

 

Figura 1. Página principal da aplicação de exemplo

Na inclusão de novos contatos, é usado um componente de calendário para informar a data de aniversário, conforme mostra a Figura 2. Note que usamos também um componente de menu. Com o Tomahawk é possível construir menus com submenus rapidamente. Outra funcionalidade interessante é a ordenação de colunas em tabelas. Através de cliques nos títulos das colunas da nossa tabela de contatos é possível ordená-las conforme desejado. E à medida que um contato marcado como favorito é adicionado, este aparece no menu Favoritos.

 

Figura 2. Consulta e inclusão de contatos

Para mantermos o foco na programação JSF, não será feito acesso a banco de dados; todas as informações dos contatos permanecerão em memória (usando coleções). Na Listagem 1 está o código da entidade Contato. Na Listagem 2, temos o código da classe ContatoDao que é responsável por incluir e consultar dados de contatos. O método consultarFavoritos() retorna todos os contatos que possuem a propriedade favoritos = true, e " [...] continue lendo...

Artigos relacionados