DEPARTAMENTO DE INFORMÁTICA - DI Java Server Faces 2.0 Rich Faces 4.0 Quais as novidades e alterações nas novas versões das tecnologias? Pablo Bruno de Moura Nóbrega Analista de Sistemas pablo.nobrega@uece.br http://pablonobrega.wordpress.com Bruno Garcia Vasconcelos Desenvolvedor de Sistemas bruno.garcia@uece.br http://brunovasconcelos.wordpress.com
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çãode Beanse 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
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. JSF2despreza ojspcomolinguagemdacamadadevisã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 funcionamparacamadadevisãoemjspjuntamento comjsf2. RichFacesusaoFacelets (*.xhtml) comocamadadevisão parajsf2.
JSF 2.0: Bibliotecas Versão -1.2 Versão - 2.1.7
JSF 2.0: Configurações Versão -1.2 Versão - 2.1.7
Rich Faces 4.0: Bibliotecas
Rich Faces 4.0: Bibliotecas Versão - 3.3.X Versão - 4.2.0
Rich Faces 4.0: Configurações Versão - 3.3.X Versão - 4.2.0
Rich Faces 4.0: Configurações
JSF 2.0: Managed Beans Versão -1.2 Versão - 2.1.7
JSF 2.0: Managed Beans >> Escopos
JSF 2.0: Converters 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. Versão 2.1.7
JSF 2.0: Validators 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. Versão 2.1.7 Passando Parâmetros para o Validador
JSF 2.0: Validators Para facilitar o desenvolvimento de uma aplicação, o JSF define um conjunto de validadores padrão.
JSF 2.0: Validação de Beans Uma 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.
JSF 2.0: Validação de Beans
JSF 2.0: Mensagens de Erro Podemos 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.
JSF 2.0: Regras de Navegação Navegação explicita declarada em faces.-config.xml Versão 1.2 Outcomepode ser propriedade actionde componente ou String retornada por metodo de managed bean. Quando uma actionretorna uma outcome, caso nenhuma regra de navegação compatível seja encontrada, funciona a navegação implícita. Versão 2.1.7 Navigation case com <if> EL no <to-view-id>
JSF 2.0: Regras de Navegação
JSF 2.0: Regras de Navegação
JSF 2.0: Injeção de Dependência 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. A injeção de dependência no bean gerenciável é feita através de EL no valor da anotação @ManagedProperty.
JSF 2.0: Componente Select Item Outra 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.
Rich Faces 4.0: Componentes
Rich Faces 4.0: Componentes
Rich Faces 4.0: Componentes
Rich Faces 4.0: Componentes
Rich Faces 4.0: Componentes
Rich Faces 4.0: Componentes
Rich Faces x Prime Faces x Ice Faces 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. 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. O Prime Faces apresentou a melhor implementação para Data Table. Ice Faces demonstrou ter a pior performance com adatatable detodososcomponentestestados.rich Facesficou entreosdois,porém próximo aoprimefaces. http://www.patternizando.com.br/2011/04/jsf-2-0-comparacao-de-desempenho-icefaces-primefaces-e-richfaces
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