Page 1
Java Server Faces 2.0Rich Faces 4.0
DEPARTAMENTO DE INFORMÁTICA - DI
Bruno Garcia VasconcelosDesenvolvedor de Sistemas
[email protected] ://brunovasconcelos.wordpress.com
Quais as novidades e alterações nas novas versões das tecnologias?
Pablo Bruno de Moura NóbregaAnalista de Sistemas
[email protected] ://pablonobrega.wordpress.com
Page 2
Tópicos
� JSF 2.0: Considerações Iniciais
� JSF 2.0: Bibliotecas e Configurações
� Rich Faces 4.0: Bibliotecas e Configurações
� JSF 2.0: Managed Beans, Converters e Validators
� JSF 2.0: Regras de Navegação
� JSF 2.0: Validação de Beans e Mensagens de Erro
� JSF 2.0: Injeção de Dependência
� Rich Faces 4.0: Componentes (Alteração e Atualização)
� Referências de estudo e Links úteis
Page 3
JSF 2.0: Considerações Iniciais
� Anotações para substituir muitas configurações no faces-config.xml.
� Suporte nativo a Ajax e Groovy.
� Suporte integrado para facelets facilitando criação de componentes.
� Mais componentes personalizados e validadores.
� Possibilidade de utilizar bookmarking.
� Debug mais detalhado: setando o valor Development na configuração
PROJECT_STAGE do web.xml, aparecerão mensagens de erro mais explícitas.
� JSF 2 despreza o JSP como linguagem da camada de visão.
� RichFaces abandonou o suporte ao JSP a partir da versão 4.0.0.Final.
� No RichFaces 4, todos os componentes novos e a maioria dos recursos não
funcionam para camada de visão em JSP juntamento com JSF 2.
� Rich Faces usa o Facelets (*.xhtml) como camada de visão para JSF 2.
Page 4
JSF 2.0: BibliotecasVersão - 2.1.7Versão - 1.2
Page 5
JSF 2.0: Configurações Versão - 1.2
Versão - 2.1.7
Page 6
Rich Faces 4.0: Bibliotecas
Page 7
Rich Faces 4.0: BibliotecasVersão - 4.2.0Versão - 3.3.X
Page 8
Rich Faces 4.0: ConfiguraçõesVersão - 4.2.0Versão - 3.3.X
Page 9
Rich Faces 4.0: Configurações
Page 10
JSF 2.0: Managed Beans
Versão - 2.1.7
Versão - 1.2
Page 11
JSF 2.0: Managed Beans >> Escopos
Page 12
JSF 2.0: Converters
Versão
2.1.7
Versão
1.2
Classe que implementa a interface javax.faces.convert.Converter. Nela, devemos adicionar a anotação
@FacesConverter para indicar a classe associada a esse conversor, ou o identificador entre aspas dupla.
Page 13
JSF 2.0: Validators
Versão
2.1.7
Versão
1.2
Classe que implemente a interface javax.faces.validator.Validator. Essa interface define um único método, o
validate(). Além disso, a classe também precisa ser anotada com @FacesValidator.
Passando Parâmetros para o Validador
Page 14
JSF 2.0: ValidatorsPara facilitar o desenvolvimento de uma aplicação, o JSF define um conjunto de validadores padrão.
Page 15
JSF 2.0: Validação de BeansUma nova abordagem para definir validações foi adicionada no JSF 2. A ideia é declarar as regras de
validação nas classes do modelo ao invés de inseri-las nos arquivos XHTML que definem as telas.
Para definir as validações com bean validation, basta adicionar anotações nas classes do modelo.
Page 16
JSF 2.0: Validação de Beans
Page 17
JSF 2.0: Mensagens de ErroPodemos personalizar as mensagens de erro através do atributo message das anotações do bean validation.
Ou pode ser mais apropriado defini-la em um arquivo de mensagens. Nesse caso, devemos criar um arquivo
chamado “ValidationMessages.properties” no classpath da aplicação.
Agora, suponha que desejamos criar uma mensagem comum associada ao validador @NotNull.
Page 18
JSF 2.0: Regras de Navegação
Versão
2.1.7
Versão
1.2
Quando uma action retorna uma
outcome, caso nenhuma regra de
navegação compatível seja
encontrada, funciona a
navegação implícita.
Navigation case com <if>
EL no <to-view-id>
Navegação explicita declarada em
faces.-config.xml
Outcome pode ser propriedade action de
componente ou String retornada por
metodo de managed bean.
Page 19
JSF 2.0: Regras de Navegação
Page 20
JSF 2.0: Regras de Navegação
Page 21
JSF 2.0: Injeção de Dependência
� A injeção de dependência no bean gerenciável é feita através de EL no valor da anotação @ManagedProperty.
� Com a injeção de dependência, o clienteBean não precisa se preocupar em criar uma nova instância de
LocalidadeCliente e gerenciá-la; basta utilizá-la quando necessário.
Page 22
JSF 2.0: Componente Select ItemOutra novidade do JSF 2 é que agora podemos utilizar o componente f:selectItems, sem a necessidade de criar
uma lista ou um array de SelectItem no bean gerenciável, implementação obrigatória nas versões anteriores.
Page 23
Rich Faces 4.0: Componentes
Page 24
Rich Faces 4.0: Componentes
Page 25
Rich Faces 4.0: Componentes
Page 26
Rich Faces 4.0: Componentes
Page 27
Rich Faces 4.0: Componentes
Page 28
Rich Faces 4.0: Componentes
Page 29
Rich Faces x Prime Faces x Ice Faces
� http://www.patternizando.com.br/2011/04/jsf-2-0-comparacao-de-desempenho-icefaces-primefaces-e-richfaces
Com apenas 3 anos de vida o framework para JSF PrimeFaces já tem mais popularidade do que os concorrentes
famosos RichFaces e Icefaces.
Criados em 2007, tanto o IceFaces quanto o RichFaces foram superados pelo framework turco e com grande
participação Brasileira.
A popularidade foi medida por meio do Google Trends que exibe as características das buscas realizadas através das
ferramentas do Google.
Algo muito interessante é que as pesquisas em lingua portuguesa sobre o PrimeFaces superam inglês e alemão.
O Prime Faces apresentou a melhor implementação para Data Table. Ice Faces demonstrou ter a pior performance com
a Data Table de todos os componentes testados. Rich Faces ficou entre os dois, porém próximo ao Prime Faces.
� http://www.patternizando.com.br/2011/05/primefaces-supera-richfaces-e-icefaces-segundo-google-trends
Comparação de Desempenho Icefaces, Primefaces e RichFaces
Artigo foi escrito utilizando um componente dataTable, presente nos três frameworks. Os parâmetros analisados foram
focados em desempenho e eficiência, ou seja: tamanho final da página, tamanho das requisições/respostas AJAX e
sobrecarga do servidor. Não foram consideradas configurações adicionais de tunning.
Page 30
Referências e Links
� http://javaserverfaces.java.net
� http://www.coreservlets.com/JSF-Tutorial/jsf2
� http://www.jboss.org/richfaces/download/stable
� https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration
� http://blog.gilliard.eti.br/2009/05/implicit-navigation-jsf-2
� http://www.k19.com.br/downloads/apostilas-java/k19-k12-desenvolvimento-web-com-jsf2-e-jpa2
� http://www.caelum.com.br/download/caelum-java-web-fj21.pdf
� http://www.venturus.org.br/wp-content/themes/newera/artigo/anotacoes-navegacao-JSF.pdf
� http://mkblog.exadel.com/2009/08/learning-jsf2-managed-beans
� http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2