aula parte 2 de jsf 2.2

53
Java para Web - JSF Parte 2 André Luiz Forchesatto

Upload: andre-luiz-forchesatto

Post on 23-Jun-2015

263 views

Category:

Education


0 download

DESCRIPTION

Aula para o curso de Pós Graduação da Faculdade Horus. Disciplina de Programação web em Java com JSF. Parte 2 da disciplina com conceitos de ciclo de vida e utilização do componentes do primefaces Github do projeto: https://github.com/forchesatto/posHorus

TRANSCRIPT

Page 1: Aula parte 2 de JSF 2.2

Java para Web - JSFParte 2

André Luiz Forchesatto

Page 2: Aula parte 2 de JSF 2.2

Agenda

● JSF 2○ Ciclo de vida○ Converters○ Validation○ Ajax

● Primefaces● Internacionalização

Page 3: Aula parte 2 de JSF 2.2

Ciclo de vida JSF● Objeto Lifecycle contrala o ciclo de vida do JSF● 6 fases

http://www.edsongoncalves.com.br/2010/02/21/javaserver-faces-2-0-na-pratica-parte-3/

Page 4: Aula parte 2 de JSF 2.2
Page 5: Aula parte 2 de JSF 2.2

Ciclo de Vida

Page 6: Aula parte 2 de JSF 2.2

Restaura Visão (Restore View) restaura ou cria no servidor a árvore de

componentes em memória para representar a interface com o usuário.

Ciclo de Vida

Page 7: Aula parte 2 de JSF 2.2

Restore View

Page 8: Aula parte 2 de JSF 2.2

Aplica Valores da Requisição (Apply Request Values)

atualiza os componentes no servidor com os dados do usuário.

Ciclo de Vida

Page 9: Aula parte 2 de JSF 2.2

Apply Request Value

Page 10: Aula parte 2 de JSF 2.2

Processa Validações(Process Validations)

processa a validação e a conversão de tipos em um novo dado.

Ciclo de Vida

Page 11: Aula parte 2 de JSF 2.2

Process Validation

Page 12: Aula parte 2 de JSF 2.2

Atualiza o Modelo (Update Model Values)

atualiza os objetos no servidor com os novos dados.

Ciclo de Vida

Page 13: Aula parte 2 de JSF 2.2

Update Model Value

Page 14: Aula parte 2 de JSF 2.2

Chama Aplicação (Invoke Application)

invoca a lógica necessário para o pedido do usuário e navega

para uma nova página se necessário.

Ciclo de Vida

Page 15: Aula parte 2 de JSF 2.2

Invoke Application

Page 16: Aula parte 2 de JSF 2.2

Apresenta a Resposta (Render Response)

salva o estado atual e mostra a resposta para

o pedido do cliente.

Ciclo de Vida

Page 17: Aula parte 2 de JSF 2.2

Render Response

Page 18: Aula parte 2 de JSF 2.2

Ciclo de vida JSF

● Nem toda requisição passa por todas etapas;● Interceptamos uma das fase implementando a

interface javax.faces.event.PhaseListener● Os método afterPhase(), beforePhase() e

getPhaseId(), estão disponíveis para interceptar o ciclo de vida

● Deve ser registrado no faces-config.xml o Listener criado

Page 19: Aula parte 2 de JSF 2.2

Ciclo de vida JSF

Page 20: Aula parte 2 de JSF 2.2

Prática

Criar uma classe para interceptar o ciclo de vida JSF

Page 21: Aula parte 2 de JSF 2.2

Converters

● Tem por finalidade converter objetos Java em String e vice-versa;

● Converters são bidirecionais:○ Managed-bean faz: getAsObject()○ JSF faz: getAsString()

● Tipos padrões Java já possuem converters padrões;

● O converter pode ser implícito(class) ou explícito(id)

Page 22: Aula parte 2 de JSF 2.2

Converters

Explícito

Implícito pegou pela classe declarada no atributo

Page 23: Aula parte 2 de JSF 2.2

Meu Converter

Page 24: Aula parte 2 de JSF 2.2

Validatores

● Utilizados para validar o valor de um campo;

● Retornam um FacesMessage com o erro;● Existem 3 maneiras de fazer validação de

campo:○ Validadores padrões JSF○ Bean Validation○ Validadores personalizados do JSF

Page 25: Aula parte 2 de JSF 2.2

Validadores padrões JSF

● validateRequered● validateDoubleRange● validateFloatRange● validateRegex

Page 26: Aula parte 2 de JSF 2.2

Bean Validation

● Especificação definida pela JSR303● É necessária uma implementação para ser utilizada● Utiliza annotation para registrar as regras de validação● Possibilita fazer validações em qualquer camada da

aplicação● Deve ser escrita de preferência nas classes do modelo

Page 27: Aula parte 2 de JSF 2.2

Bean Validation

Usa annotations no model e não precisa registrar nada no JSF

Page 28: Aula parte 2 de JSF 2.2

Validadores personalizados do JSF

● Criar uma classe que implementa uma interface de validação

● Será utilizado somente no JSF e deve ser invocado explicitamente no arquivo .xhtml

Page 29: Aula parte 2 de JSF 2.2

Validadores personalizados do JSF

Page 30: Aula parte 2 de JSF 2.2

Prática

Criar Validatores utilizando Bean Validation e Validadores Personalizados JSF;Criar converter para as classes do nosso projeto;Criar algumas telas de cadastro;

Page 31: Aula parte 2 de JSF 2.2

Ajax● Asynchronous Javascript and XML● Um conjunto de tecnologias:

○ HTML○ DOM○ XHTML○ CSS○ XML○ XSLT○ XMLHttpRequest○ JavaScript

Page 32: Aula parte 2 de JSF 2.2

Ajax● Foi batizado em 2005 pela publicação do

artigo “Ajax: A New Approach to Web Application” Escrito por Jossé James Garret

● Ajax pode ser usado com Java, Php, Ruby, etc..

● Ajax = Javascript rodando no browse e se comunicando com o servidor

Page 33: Aula parte 2 de JSF 2.2

Como funciona o AJAX

Page 34: Aula parte 2 de JSF 2.2

Como funciona o AJAX

Page 35: Aula parte 2 de JSF 2.2

Por que usar AJAX● Respostas mais rápidas;● Economia na banda do servidor;● Maior interatividade;

Page 36: Aula parte 2 de JSF 2.2

Ajax no JSF 2.0

O que vai enviar ao servidor@form, @all, @this,

ou id de um componente

Id do componente a ser atualizado com o retorno do servidor.Pode ser usado @all, @this, @form

Evento a ser executado o

AJAX

Page 37: Aula parte 2 de JSF 2.2

PráticaTransformar os cadastros já feitos em cadastros com AJAX

Page 38: Aula parte 2 de JSF 2.2

Primefaces● Biblioteca de componentes ricos● Implementada para Mojora (JSF) 2.0● Mais de 100 componentes● http://www.primefaces.org/● http://www.primefaces.org/showcase

Page 39: Aula parte 2 de JSF 2.2

Primefaces - Download

<dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>5.0</version> </dependency>

Page 40: Aula parte 2 de JSF 2.2

Primefaces - XHTML

● Configurar as páginas xhtml para renderizer primefaces.

xmlns:p="http://primefaces.org/ui"

Page 41: Aula parte 2 de JSF 2.2

Dependências

Page 42: Aula parte 2 de JSF 2.2

Primefaces - TemasPara configurar um tema basta adicionar o jar do tema desejado e configurar o web.xml

http://www.primefaces.org/themes.html

<context-param><param-name>primefaces.THEME</param-name><param-value>cupertino</param-value></context-param>

Page 43: Aula parte 2 de JSF 2.2

Temas - Download<dependency> <groupId>org.primefaces.themes</groupId> <artifactId>cupertino</artifactId> <version>1.0.10</version> </dependency>

<repositories> <repository> <id>prime-repo</id> <name>PrimeFaces Maven Repository</name> <url>http://repository.primefaces.org</url> <layout>default</layout> </repository> </repositories>

Page 44: Aula parte 2 de JSF 2.2

Exemplo Dialog

Page 45: Aula parte 2 de JSF 2.2

Exemplo Mascaras

Page 46: Aula parte 2 de JSF 2.2

PráticaConstruir as telas de cadastro utilizando os componentes do primefaces;Criar alguns componentes autocomplete;

Page 47: Aula parte 2 de JSF 2.2

Internacionalização● JSF 2 fornece duas maneiras de

internacionalização○ faces-config.xml○ tag Core <f:loadBundle>

● Após configurado é possível pegar através de uma chave um valor adicionado em um arquivo texto de mensagens.

Page 48: Aula parte 2 de JSF 2.2

InternacionalizaçãoConfiguração arquivo faces-config.xml

Page 49: Aula parte 2 de JSF 2.2

Internacionalização● Componente Core <f:loadBundle>● É necessário configurar em cada página

Page 50: Aula parte 2 de JSF 2.2

Internacionalização● Padrão do arquivo de mensagens:

○ Respeitar o nome que foi adicionado na configuração;

○ O arquivo é composto por key=value

Page 51: Aula parte 2 de JSF 2.2

Internacionalização● Para utilizar a chave do arquivo basta,

chamar a variável(msg) configurada no XML (ponto) nome da chave;

<h:outputLabel value="#{msg.tituloUF}"/>

Page 52: Aula parte 2 de JSF 2.2

Prática● Internacionalizar a nossa aplicação

Page 53: Aula parte 2 de JSF 2.2

Referências