O documento resume as principais características e funcionalidades do JavaServer Faces e do Primefaces. O JavaServer Faces é um framework para construção de interfaces web em Java que possui componentes pré-fabricados, programação orientada a eventos e permite integrar apresentação, lógica e negócio. Já o Primefaces é uma biblioteca de componentes para JSF que fornece mais de 100 componentes ricos para interface com suporte a Ajax e temas pré-definidos.
3. JavaServer Faces e Primefaces
INTRODUÇÃO
• Complexidade das aplicações web
• Enorme quantidade de recursos pra se gerenciar
• Aplicações corporativas
• Complexidade e desordem nos códigos, dificultando a
manutenção
• Pouca ou nenhuma dinamicidade e reusabilidade, diminuindo
a produtividade
• Problemas na utilização de lógicas de negócio mais
complexas
• Desempenho
• Segurança
4. JavaServer Faces
INTRODUÇÃO
• Framework para construção de interfaces web em Java
• Implementação de referência da especificação JSR-314
• Possui um conjunto de componentes pré-fabricados
• Programação orientada a eventos
• Permite a união entre apresentação visual, lógica da
aplicação e lógicas de negócio
12. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• Os componentes UI se mantém sincronizados com
objetos java do lado servidor
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
13. RAD
Rapid Application Development
Características:
• Arquitetura fundamental de componentes
• Arquitetura extensível para geração de componentes de
terceiros
• Um conjunto de componentes padrão
• Infra-estrutura de aplicação
• É uma ferramenta
14. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• Componentes UI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
15. ManagedBeans
• Coleta inputs dos usuários nos componentes de
formulários
• Manipulação dos componentes de forma dinâmica
• Intermediar a comumicação entre as páginas
(componentes JSF) e o modelo
• Trabalham com objetos do modelo para executar lógica
de negócio
• Manipulação de eventos de interface
• JSF 2.0 - @ManagedBean
• JSF 1.x – faces-config.xml
16. ManagedBeans
ESCOPOS
• @RequestScoped – Escopo de requisição
– O managed bean é instanciado e permanece disponível durante
o tempo da requisição HTTP
– Recomendado quando o interesse é a economia de recursos do
servidor
– Quando os dados não precisam ser mantidos de uma requisição
pra outra
• @SessionScoped – Escopo de sessão
– O managed bean é instanciado no momento de uma requisição
e só finaliza quando a sessão é finalizada
– Recomendado quando o interesse é guardar os estados dos
objetos a medida em que se vai realizando a navegação, pois os
mesmos são mantidos mesmo em caso de uma nova requisição
– Exemplo: Carrinho de compras
17. ManagedBeans
ESCOPOS
• @ApplicationScoped – Escopo de aplicação
– O managed bean é instanciado no momento em que a aplicação
é iniciada no servidor com o atributo eager setado em true, caso
contrário, é instanciado na primeira requisição feita ao bean
– Recomendado em caso de disponibilização de serviços que
precisam estar sempre disponíveis
• @ViewScoped – Escopo de visualização
– O managed bean é instanciado no momento em que é feita uma
requisição para uma página que use seus objetos e é destruído
quando os seus objetos não são mais utilizados pela página
– Meio termo entre @RequestScoped e @SessionScoped
– Recomendado em caso de utilização de aplicações que utilizem
AJAX, ou seja, que atualizam parte da página ou toda ela
18. ManagedBeans
ESCOPOS
• @NoneScoped – Nenhum escopo
– Os objetos do managed bean não são instanciados pela
camada de visão, mas podem ser utilizados por outros managed
beans conforme a necessidade
– Recomendado quando os objetos ou métodos não tem ligação
direta com alguma página
• @CustomScoped – Escopo personalizado
– Escopo definido conforme a necessidade do desenvolvedor,
implementado em uma classe auxiliar que define as
características do escopo como ciclo de vida, acessibilidade,
estrutura de dados e outros
20. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• ComponentesUI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
21. Componentes UI
• Componentes que gerenciam a interação com o usuário
• São armazenados numa árvore no servidor (view)
• Tags interpretadas para apresentação (html)
• Tag Libraries h e f
• h: tags de componentes que combinam tags HTML
com objetos UIComponent definidos na
especificação JSF
• f : tags com ações independentes do HTML
22. Componentes UI
• Sujeito a estilização (css)
• Interação com funções JavaScript e com objetos e
métodos do lado servidor (ManagedBean)
35. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• ComponentesUI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
36. Converters
• Conversão de valores de entrada e de saída
• Conversores implícitos para tipos primitivos
• Disparam mensagens que podem ser configuradas
(converterMessage)
• Impedem as ações
• Conversores padrão e customizados
40. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• ComponentesUI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
41. Eventos e Listeners
• Eventos
• Atributo action aponta para um método no bean
• Retorno void ou String apontando para próxima
página
• Exemplo:
42. Eventos e Listeners
• Listeners
• Retorno void e parâmetro referente ao listener
utilizado
• Exemplo:
43. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• ComponentesUI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
44. Controle de Navegação
• JSF 1.x
• faces-config.xml
• navigation-rule
• JSF 2
• Retorno dos métodos através de chamadas
declaradas no atributo action
• Não há necessidade de retorno das extensões
• ?faces-redirect=true para redirecionamento de url
49. JavaServer Faces
CARACTERÍSTICAS
• Arquitetura MVC
• RAD
• ManagedBeans
• ComponentesUI
• Validators
• Converters
• Eventos e Listeners
• Controle de Navegação
• Mensagens
• Internacionalização
50. Internacionalização
• O JavaServer Faces oferece suporte à
internacionalização, possibilitando que a aplicação seja
visível em vários idiomas
• Configuração:
• faces-config.xml (global)
• <f:loadBundle/> (local)
51. Internacionalização
PASSO A PASSO
• Criação do arquivo nomeArquivo_abreviacao.properties
• Exemplos:
53. Primefaces
INTRODUÇÃO
• Biblioteca de componentes para JSF de código aberto
• Possui um rico conjunto com mais de 100 componentes
de interface
• Suporte nativo a Ajax
• Mais de 30 temas pré-definidos, oferecendo a
possibilidade de criação de temas
• Documentação de fácil acesso e demonstração do uso
dos componentes disponíveis no site
http://www.primefaces.org/showcase