Java Server Faces 2 & Rich Faces 4

Preview:

DESCRIPTION

Java Server Faces 2.0 e Rich Faces 4.0. Quais as novidades e alterações nas novas versões das tecnologias?

Citation preview

Java Server Faces 2.0Rich Faces 4.0

DEPARTAMENTO DE INFORMÁTICA - DI

Bruno Garcia VasconcelosDesenvolvedor de Sistemas

bruno.garcia@uece.brhttp://brunovasconcelos.wordpress.com

Quais as novidades e alterações nas novas versões das tecnologias?

Pablo Bruno de Moura NóbregaAnalista de Sistemas

pablo.nobrega@uece.brhttp://pablonobrega.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çã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

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.

JSF 2.0: BibliotecasVersão - 2.1.7Versão - 1.2

JSF 2.0: Configurações Versão - 1.2

Versão - 2.1.7

Rich Faces 4.0: Bibliotecas

Rich Faces 4.0: BibliotecasVersão - 4.2.0Versão - 3.3.X

Rich Faces 4.0: ConfiguraçõesVersão - 4.2.0Versão - 3.3.X

Rich Faces 4.0: Configurações

JSF 2.0: Managed Beans

Versão - 2.1.7

Versão - 1.2

JSF 2.0: Managed Beans >> Escopos

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.

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

JSF 2.0: ValidatorsPara facilitar o desenvolvimento de uma aplicação, o JSF define um conjunto de validadores padrão.

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.

JSF 2.0: Validação de Beans

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.

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.

JSF 2.0: Regras de Navegação

JSF 2.0: Regras de Navegação

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.

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.

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

� 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.

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