JSF

Olá pessoal!

Estou de volta trazendo o 2º Framework de java.... JSF!

Em 3,2,1..

O que falar do JSF?

O JSF é um framework que utiliza o modelo MVC que permite ao usuário criar aplicações para Web utilizando componentes visuais.
Surgindo com a proposta de agilizar e automatizar processos utilizados em projetos J2EE o JSF surpreendeu muita gente e diversos frameworks do mercado.


Vantagens:

- Conjunto de componentes de interfaces de usuário (UI)
- Comunicação entre camadas de controle e visão da aplicação
- Validação e conversão pode acontecer na camada de visão
- Interfaces complexas com componentes simples
- Manipulação de eventos simplificada
- Frameworks RIA

Desvantagens:

- Alguns componentes são caixas pretas que vc precisa adivinhar como trabalhar com elas.
- Assim como o Struts o JSF também possui uma documentação deficiente
- Falta de transparência
- Mudança de paradigma: para quem trabalhou muito tempo com os Frameworks baseados em ações fica difícil mudar o pensamento

Vamos olhar agora a arquitetura?


o ciclo de vida do JSF ele se divide em seis fases são elas:

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

As fases focadas no desenvolvimento são:
Fase 2, 3, 4 e 5.

As fases focadas no desenvolvimento de componentes de visão são:

Fase 1 e 6.

Mas o que será que acontece em cada fase?

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

Uma requisição do servlet FacesServlet é realizada,
é identificada 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ção da resposta consiste na apresentação da página referente ao resultado da aplicação ao usuário.
Nesta fase 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.

Bom pessoal, espero que tenham gostado do post.
Espero vocês no próximo, que será a comparação do JSF 1 e 2.

Até a próxima!
o/

Thallita Celeste

Olá! Sou Thallita, fundadora do blog ThallitaCeleste. Sou Analista de segurança, com fome de conhecimento e grande vontade de ajudar as pessoas ao redor. Aqui, tento manter meu histórico sobre diversos temas. Bem, seja Bem Vindo ao meu Blog! Espero que goste. o/

Nenhum comentário:

Postar um comentário