• Share
  • ?
  • Profiles ▼
  • Communities ▼
  • Apps ▼

Blogs

  • My Blogs
  • Public Blogs
  • My Updates

This community can have members from outside your organization. iMasters

  • Log in to participate
fd26864d-cb41-49cf-b719-d89c6b072893 Blog

▼ Tags

▼ Similar Entries

How to Identify Clas...

Blog: Application I...
MicheleCalcavecchia 270000HCF1
Updated
0 people like thisLikes 0
No CommentsComments 0

How to ensure that a...

Blog: CSE-Sterling ...
Paul Barrie 270003JP87
Updated
0 people like thisLikes 0
No CommentsComments 0

z/TPF rules engine d...

Blog: TPF Blog
Chris Filachek 270007S5UM
Updated
0 people like thisLikes 0
No CommentsComments 0

Updates to z/TPF sup...

Blog: TPF Blog
lemie 060000M2N6
Updated
3 people like thisLikes 3
No CommentsComments 0

IBM ITSM Netcool Ope...

Blog: Network and S...
Murali-Pa 270002P65C
Updated
3 people like thisLikes 3
No CommentsComments 0

▼ Archive

  • January 2014
  • August 2013
  • July 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • April 2010

▼ Blog Authors

iMasters

View All Entries
Clicking the button causes a full page refresh. The user could go to the "Entry list" region to view the new content.) Entry list

Conheça o ciclo de vida do JSF

iMasters 27000343BF | | Tags:  java ‎ | 4,093 Views

Um dos fundamentos de maior relevância do JSF é seu ciclo de vida que se dá entre a requisição e a resposta do servidor de aplicação. São vários os motivos da existência deste ciclo, dentre estes, temos:

  • Manter o controle de estado dos componentes de interface;
  • Alinhar ouvintes de eventos com seus respectivos eventos;
  • Controle de navegação entre páginas, que deve ser realizado pelo servidor;
  • Permitir que validações e conversões sejam realizadas no lado do servidor.

Indo direto ao assunto, o ciclo de vida do JSF se divide em seis fases (veja a figura abaixo), que são:

  • Fase 1: Restore View (Restauração da visão);
  • Fase 2: Apply Request Values (Aplicar valores da requisição);
  • Fase 3: Process Validation (Processar as validações);
  • Fase 4: Update Model Values (Atualizar valores de modelo);
  • Fase 5: Invoke Application (Invocar aplicação);
  • Fase 6: Render Response (Renderizar a resposta).

fases JSF

Vejamos agora o que acontece em cada uma.

Fase 1: Restore View (Restauração da visão)

A partir de uma requisição proveniente do servlet FacesServlet, é identificado qual visão está sendo requisitada por meio do ID desta que é determinado pelo nome da página JSP. Tendo identificado a página, esta é salva no FacesContext (caso ainda não tenha sido salva) e sua respectiva árvore de componentes é construída.

Fase 2: Apply Request Values (Aplicar valores da requisição)

Nesta fase, cada componente da visão, criado ou recuperado, passa a ter o seu valor. Nesse contexto, existem algumas diferenças ocasionadas pelo valor do atributo “immediate” em cada componente:

  • immediate = false: Neste caso, que é o padrão, os valores são apenas convertidos para o tipo apropriado. Se o valor é um Integer, é convertido para Integer.
  • immediate = true: Os valores são convertidos e validos.

Fase 3: Process Validation (Processar as validações)

Esta é a primeira manipulação de eventos do ciclo, aqui serão executadas as validações definidas pelo servidor em cada componente. Não existindo valores inválidos, o ciclo segue para a Fase 4. Existindo, uma mensagem de erro será gerada (adicionada ao contexto do Faces, FacesContext) e o componente é marcado como inválido. Neste caso, o ciclo segue para a Fase 6 (Renderizar a resposta).

Fase 4: Update Model Values (Atualizar valores de modelo)

Os valores enviados pela requisição e validados pela fase 3, são atualizados em seus respectivos atributos contidos nos backings beans, onde somente as propriedades enviadas são atualizadas. É importante dizer que, mesmo após a fase de validação, fase 3, os valores enviados podem estar inválidos a nível de negócio ou a nível de conversão de tipos, o que pode ser verificado pelo próprio bean.

Fase 5: Invoke Application (Invocar aplicação)

Nesta fase, os valores dos componentes da requisição, estão validados convertidos e disponíveis nos backings beans. Assim a aplicação tem os insumos necessários para aplicar a lógica de negócio.

Outro fator importante dessa fase, é o direcionamento do usuário de acordo com as submissões realizadas pelo mesmo. Por exemplo, se ouve sucesso no processamento dos dados enviados, o usuário é redirecionado para uma determinada página, se não, permanece na mesma página.

Fase 6: Render Response (Renderizar a resposta)

O processo ‘Renderizar a resposta’ consiste na apresentação da página referente ao resultado da aplicação ao usuário. Neste contexto existem três possibilidades:

  • Caso seja a primeira requisição da página: Os componentes associados são criados e associados a visão;
  • Caso seja a primeira submissão: Os componentes são traduzidos para o HTML;
  • Caso tenha ocorrido algum erro: Existindo os marcadores <f:message /> ou <f:messages /> na página, os erros são exibidos ao usuário.

Visão geral

No desenvolvimento em JSF existem dois perfis diferentes de desenvolvedores: os que desenvolveram aplicações JSF e os que desenvolveram componentes. No primeiro perfil, as fases de maior foco são a 2, 3, 4 e 5. Já no segundo, são a 1 e 6, que estão mais relacionadas a árvore de componentes no lado do servidor e de componentes da visão. Sendo assim podemos agrupar as fases da seguinte forma:

  • Fases focadas no desenvolvimento de aplicações JSF
    • Fase 2: Apply Request Values (Aplicar valores da Requisição)
    • Fase 3: Process Validation (Processar as Validações)
    • Fase 4: Update Model Values (Atualizar Valores de Modelo)
    • Fase 5: Invoke Application (Invocar Aplicação)
  • Fases focadas no desenvolvimento de componentes de visão
    • Fase 1: Restore View (Restauração da Visão)
    • Fase 6: Render Response (Renderizar a Resposta)
 

***

Artigo de Samuel Vinícius

  • Add a Comment Add a Comment
  • Edit
  • More Actions v
  • Quarantine this Entry
Notify Other People
notification_ex

Send Email Notification

Quarantine this entry

deleteEntry
duplicateEntry

Mark as Duplicate

  • Previous Entry
  • Main
  • Next Entry
Feed for Blog Entries | Feed for Blog Comments | Feed for Comments for this Entry