Disseminar informação é preciso

Entendendo o Ciclo de Vida JSF

| Junho 25, 2009
A especificação JSF define seis fases, conforme a figura abaixo:














1. Restore view

Se a página requisitada já foi exibida antes, é recuperada toda a árvore de componentes para a página requisitada. Caso esteja sendo exibida pela primeira vez é construída uma nova árvore de componentes. No caso da página já ter sido exibida antes, todos os componentes serão configurados com seu estado anterior. É fácil notar isso no processo de validação, onde os valores digitados inicialmente no formulário serão mantidos.

Se a requisição não possuir dados solicitados, a implementação JSF pula para a fase Render Response. Normalmente isso acontece quando a página é requisitada a primeira vez.

2. Apply request values

Nesta fase ocorrem iterações sobre os objetos da árvore de componentes. São extraídos todos os valores digitados pelo usuário e guardados esses valores nos seus respectivos componentes.

3. Process validation

A String com o valor enviado é convertida para o tipo correto do objeto. Caso ocorra algum erro de validação mensagem de erro é adicionada no FacesContext, o componente é marcado como inválido e a implementação JSF invoca a fase Render Response. Caso contrário o ciclo de vida continua normalmente.

4. Update Model Values

Sua principal atividade é atribuir os valores informados pelo usuário no formulário, para as respectivas propriedades associadas aos BackBeans (também conhecidos como Managed Beans). Pode haver erro na conversão, fazendo com que o JSF dispare um erro de tempo de execução.

5. Invoke Application

Nesta fase o controlador (controller) do JSF chama o método associado no submit, disparando assim a camada de regras de negócio da aplicação. Todos os valores foram validados e carregados nas fases anteriores, por isso poderemos usá-los conforme necessitar. Geralmente é retornado uma String de resultado, que é passada para o handle de navegação.

6. Render Response

Esta fase codifica a resposta e envia-a de volta ao navegador.

A casa nova requisição o ciclo recomeça do zero.

8 comentários:

www.artweb7.com.br disse...
Este comentário foi removido pelo autor.
Rodrigo disse...

SHOWWWWWWWWWWWW

camilo disse...

excelente o post!

Anderson Fortaleza disse...

Coloca aí agora o ciclo de vida JSF que o JBoss Seam implementou. 22 passos ;)

Renzo Mesquita disse...

Tiago, excelente! simples e direto. Valeu cara!

dionlan A. disse...

Mto bom, grato!

Anônimo disse...

Muito bom o post.

Leonardo Marcelino disse...

Prezado,
há uma incorreção na fase 3. process validation, pois a conversão ocorre na fase anterior, 2. apply request values, como pode ser visto no excerto abaixo:
Apply Request Values Phase
...each component in the tree extracts its new value from the request parameters by using its **decode** (processDecodes()) method. If the conversion of the value fails, an error message that is associated with the component is generated and queued on FacesContext.

Process Validations Phase
...processes all validators registered on the components in the tree, by using its **validate** (processValidators) method. ...If there were ***conversion errors from the Apply Request Values phase***, the messages for these errors are also displayed.
http://docs.oracle.com/javaee/6/tutorial/doc/bnaqq.html#bnaqt

Postar um comentário