21
Java Server Java Server Faces Faces Leandro O. Gomes Leandro O. Gomes Primeiros passos - Primeiros passos - FES(2009-1) FES(2009-1)

Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Embed Size (px)

Citation preview

Page 1: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Java Server Java Server FacesFaces

Leandro O. GomesLeandro O. Gomes

Primeiros passos - Primeiros passos - FES(2009-1)FES(2009-1)

Page 2: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

O que é Java Server O que é Java Server Faces?Faces?

Framework para desenvolver aplicacões webFramework para desenvolver aplicacões web

Faz parte da especificação do JEEFaz parte da especificação do JEE

Open-SourceOpen-Source

Fácil de usarFácil de usar

Grande demanda de mercadoGrande demanda de mercado

Componentes ExtensíveisComponentes Extensíveis

Page 3: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

O que compõe o JSF?O que compõe o JSF?

ComponentesComponentes EventosEventos

ValidadoresValidadores ConversoresConversores

NavegabilidadeNavegabilidade Backing BeansBacking Beans

Page 4: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Usando o JSFUsando o JSF

Para usar o JSF é necessário:Para usar o JSF é necessário:

jsf-api.jarjsf-api.jar

jsf-impl.jarjsf-impl.jar

libs commonslibs commons

JSTL libsJSTL libs

Todos os jar’s devem estar na pasta Todos os jar’s devem estar na pasta WEB-INF/libWEB-INF/lib

Criar o arquivo de configuração:Criar o arquivo de configuração:

faces-config.xmlfaces-config.xml

Page 5: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Usando o JSFUsando o JSF

Estrutura de diretórios:Estrutura de diretórios:

Page 6: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Ciclo de Vida do Java Ciclo de Vida do Java Server FacesServer Faces

Quando um client faz o pedido de um página, Quando um client faz o pedido de um página, se inicia o ciclo de vida do JSFse inicia o ciclo de vida do JSF

Quando um página é submetida, o faces Quando um página é submetida, o faces executa 2 tarefas básicas:executa 2 tarefas básicas:

validar as UIComponents da viewvalidar as UIComponents da view

converter as entradas de dados nos tipos converter as entradas de dados nos tipos adequados nos backing beansadequados nos backing beans

Page 7: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Ciclo de Vida do Java Ciclo de Vida do Java Server FacesServer Faces

Page 8: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Ciclo de Vida do Java Ciclo de Vida do Java Server FacesServer Faces

Restore View Phase:Restore View Phase:

Após a requisição do cliente, todo o estado da view é restaurado Após a requisição do cliente, todo o estado da view é restaurado através de uma objeto chamado FacesContext (componentes, através de uma objeto chamado FacesContext (componentes, listeners, validadores, conversores etc)listeners, validadores, conversores etc)

Apply Request Values PhaseApply Request Values Phase

Extrair todos os valores digitados pelo usuário e guardar esse valor Extrair todos os valores digitados pelo usuário e guardar esse valor nos seus respectivos componentesnos seus respectivos componentes

se o valor digitado não for compatível com o componente, um erro se o valor digitado não for compatível com o componente, um erro é lançado e adicionado na classe FacesContext e será mostrado na é lançado e adicionado na classe FacesContext e será mostrado na fase fase Render Response PhaseRender Response Phase

Page 9: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Ciclo de Vida do Java Ciclo de Vida do Java Server FacesServer Faces

Process Validation PhaseProcess Validation Phase

Nessa fase, o JSF executa todos os validadores existentes na view.Nessa fase, o JSF executa todos os validadores existentes na view.

Caso haja algum erro, uma mensagem de erro é adicionada em Caso haja algum erro, uma mensagem de erro é adicionada em FacesContext e o fluxo de execução vai ser direcionado para a fase FacesContext e o fluxo de execução vai ser direcionado para a fase Render Response PhaseRender Response Phase

Update Model Values PhaseUpdate Model Values Phase

O status da view será atualizado com todos os valores gravados nos O status da view será atualizado com todos os valores gravados nos componentescomponentes

Caso ocorra algum erro de conversão entre tipos, um erro vai ser Caso ocorra algum erro de conversão entre tipos, um erro vai ser adicionado em FacesContext e o fluxo vai ser direcionado para a fase adicionado em FacesContext e o fluxo vai ser direcionado para a fase Render Response Phase Render Response Phase

Invoke Application PhaseInvoke Application Phase

É nessa fase que o método de ação em seu bean vai ser executado e as É nessa fase que o método de ação em seu bean vai ser executado e as regras de navegação vão ser aplicadasregras de navegação vão ser aplicadas

O fluxo de execução vai ser encerradoO fluxo de execução vai ser encerrado

Page 10: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

NavegabilidadeNavegabilidade

A navegação de páginas em JSF é baseada em A navegação de páginas em JSF é baseada em regras de navegação regras de navegação

Tipos de Navegação:Tipos de Navegação:

EstáticaEstática

DinâmicaDinâmica

Page 11: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

NavegabilidadeNavegabilidade

Page 12: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

NavegabilidadeNavegabilidade

Page 13: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

NavegabilidadeNavegabilidade

Navegação DinâmicaNavegação Dinâmica

Page 14: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Backing BeansBacking Beans

Definido no faces-config.xml e identificada Definido no faces-config.xml e identificada através de um aliasatravés de um alias

Implementação de validaçõesImplementação de validações

Funciona como um Controller, chamando o Funciona como um Controller, chamando o Model e escolhendo a ViewModel e escolhendo a View

Page 15: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Backing BeansBacking Beans

Page 16: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Backing BeansBacking Beans

Usando um Backing Bean:Usando um Backing Bean:

<h:commandLink value=”Voltar” <h:commandLink value=”Voltar” action=”#{beanName.metodo}”action=”#{beanName.metodo}”

A assinatura do método deve ser:A assinatura do método deve ser:

public String metodo( ) { ... }public String metodo( ) { ... }

O retorno do método é usado para O retorno do método é usado para navegaçãonavegação

Page 17: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

JSF Expression JSF Expression LanguageLanguage

O Jsf possui uma linguagem para simplificar a O Jsf possui uma linguagem para simplificar a sintaxe de acesso as informaçõessintaxe de acesso as informações

Ex:Ex:

#{carro.nome}#{carro.nome}

#{carro.motorista.nome}#{carro.motorista.nome}

#{aluno.disciplinas[5].nome}#{aluno.disciplinas[5].nome}

Page 18: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Conversão e ValidaçãoConversão e Validação

As conversões são efetuadas no Apply As conversões são efetuadas no Apply Request Values PhaseRequest Values Phase

As validações são efetuadas no Process As validações são efetuadas no Process Validation PhaseValidation Phase

Page 19: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Conversão e ValidaçãoConversão e Validação

Conversão:Conversão:

é o processo de assegurar que o dado é do tipo ou é o processo de assegurar que o dado é do tipo ou do objeto corretodo objeto correto

JSF provê vários conversores padrões. Também é JSF provê vários conversores padrões. Também é possível criar seu próprio conversorpossível criar seu próprio conversor

Page 20: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

Conversão e ValidaçãoConversão e Validação

Validação:Validação:

Processo que assegura que o dado é o Processo que assegura que o dado é o esperadoesperado

Existem 4 formas de validadação:Existem 4 formas de validadação:

embutida nos componentesembutida nos componentes

em nível de applicaçãoem nível de applicação

personalizadospersonalizados

métodos nos backing beansmétodos nos backing beans

Page 21: Java Server Faces Leandro O. Gomes Primeiros passos - FES(2009-1)

ExercícioExercícioCrie um jogo com JSF para adivinhar um número secreto. Esse jogo Crie um jogo com JSF para adivinhar um número secreto. Esse jogo deve possuir duas JSPs: uma onde o usuário digitará um número e deve possuir duas JSPs: uma onde o usuário digitará um número e outra onde será exibido uma mensagem de sucesso e número de outra onde será exibido uma mensagem de sucesso e número de tentativas para o acerto, caso o usuário acerte o número secreto.tentativas para o acerto, caso o usuário acerte o número secreto.

O objetivo desse exercício é entender:O objetivo desse exercício é entender:

A estrutura do faces-config.xmlA estrutura do faces-config.xml

Criação de um beanCriação de um bean

Criação de JSPs com JSTLCriação de JSPs com JSTL

http://code.google.com/p/fes200901http://code.google.com/p/fes200901

[email protected]@gmail.com