-
Fase 2 – Apply Request values
O propósito desta fase é fazer com que cada componente recupere se estado corrente.
O Componente deve primeiro ser criado ou recuperado a partir do FacesContext, seguido por seus valores.
Se o campo for Inteiro, o valor será convertido para um inteiro. Se a conversão falhar será adicionado no FacesContext uma mensagem de erro que será exibida durante a fase de Render response.
-
Cuidado com a confusão entre CONVERSÃO e VALIDAÇÃO.
A Conversão vai cuidar de fazer algo assim:
É claro que se o usuário colocar algo como:
"nasci em quatro de abril, lá no ano do senhor de 1942"
Não vai ter como o componente converter isso então será lançado um erro.
Já a validação é um processo posterior, como por exemplo validação de valores mínimos e máximos.
<f:validate>
É claro que o objetivo sem futuro da banca foi esse mesmo.
-
-
Aqui tem o conceito das outras fases: http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jsf/jsf.htm
-
1. Restauração da visão (MCV - controller no FaceServlet) - o objetivo principal desta fase é construir a árvores de componentes. Ela utiliza o template e cria a árvore inicial através da análise da requisição. Após isto, ela salva o estado da árvore no objeto FacesContext. Nas requisições subsequentes, ela cria a árvore do estado e procede a execução do resto do ciclo de vida.
2. Aplicação dos valores de requisição (MCV - controller no FaceServlet)- o JSF pega cada componente da árvore começando com a raiz e a cria ou recupera do objeto FacesContext. Cada componente na árvore gerencia seus próprios valores e toma-os dos parâmetros, cookies e cabeçalhos da requisição HTTP.
3. Validações de processo - (MCV - controller nos managed beans)o JSF realiza a conversão e validação sobre todos os componentes começando com o raiz. O valor submetido de cada componente é convertido em um objeto e validado chamando-se o validador registrado. O JSF salva o valor submetido. Se ocorrer um erro durante a conversão ou validação, o ciclo de vida escapa diretamente para a fase de "apresentação da resposta".
4. Atualização de valores de modelo (MCV - controller nos managed beans atuando no Modelo)- durante esta fase, o valor do componente é passado para o modelo através da atualização das propriedades dos backing beans.
5. Invocação da aplicação (MCV - controller nos managed beans atuando na View)- a manipulação de evento para cada action e listener de action é executada começando com o(s) listener(s) de action e então a chamada do método da action.
6. Apresentação da resposta - momento é que a View retorna ao usuário.
-
Acredito que nesta questão, foi adicionado o conceito de Apply Request Values Phase na primeira parte e de Process Validations Phase no final da questão.
-
1° passo - restauração da árvore de componentes. primeiro acesso - o JSF cria-a de acordo com a descrição do arquivo .xhtml.
2. extração dos valores,atribuição aos respectivos componentes da árvore e conversão dos dados.
3° passo -validação dos valores
4. atualizar os valores dentro do Managed Bean (métodos setters do MB invocados)
5.métodos associados a ações de botões executados dentro do MB.
6. JSF gera o HTML enviado com base na árvore de componentes. Antes disso, os valores são extraídos do MB, através de todos os métodos getters.
-
1. Restore View;
Recuperar tela ou visão: Nesta fase, o componente Controller recupera o ID da tela (determinado pelo nome da página JSP). Assim, o framework JSF cria três tipos de instâncias: Nova visão, visão de inicio e visão de retorno. Cada uma dessas instâncias recebe um tratamento diferenciado.
2. Apply request values;
Aplicação dos valores recuperados: Esta etapa é promove o estado atual de cada componente. Por meio do FacesContext, os componentes são criados ou recuperados quer pelo método request quer pelos cookies. Uma segunda curiosidade, é que nesta fase são aplicados os "Converters" criados pelo usuários.
3. Process Validation;
Processo de validação: Como o próprio nome sugere, é nesta fase que as validações são aplicadas nos valores de cada componente.
4. Update model values;
Atualização dos valores do modelo: Neste estágio do ciclo de vida, os valores descritos na tela (Conteiner Cliente) serão atualizados no modelo do lado do servidor (J2EE Server). Sendo assim, as propriedades do managed beans serão atualizadas somente a nível de tela. Não cabe neste momento, aproximar à idéia de atualização de informações na base de dados.
5. Invoke Application;
Invocar a aplicação: Nesta etapa, o Controller manipula o envio do formulário a fim de realizar as aplicações das regras de negócio.
6. Render response.
Este estágio corresponde ao retorno da aplicação para a visão (Já que o processo encontrava-se no Conteiner Server) com todos os componentes em seu estado atual.