SóProvas


ID
3362002
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2020
Provas
Disciplina
Programação
Assuntos

Assinale a opção que apresenta a fase do ciclo de vida que, no framework JavaServer Faces 2.0, recria a árvore de componentes da página, dispara validadores nos componentes da UIViewRoot e a atualiza dentro do objeto FacesContext.

Alternativas
Comentários
  • Questão muito mal formulada. São feitas 3 afirmativas:

    1. recria a árvore de componentes da página -> quem cria pela primeira vez é a fase RESTORE VIEW, quem RECRIA ao meu ver é o RENDER RESPONSE.

    2. dispara validadores nos componentes da UIViewRoot -> Aqui mora o maior problema. A fase RESTORE VIEW acopla os validadores aos componentes da visão enquanto a fase PROCESS VALIDATIONS dispara a execução dos validadores. O uso do verbo "dispara" confundiu MUITO aqui.

    3. atualiza dentro do objeto FacesContext -> Quase todas as fases atualzam o FacesContext. Se não me engano apenas a INVOKE APPLICATION e RENDER RESPONSE que não o fazem.

    Resumindo... Para mim o uso do verbo conjugado "dispara" tornou a questão anulável. Relevando isso, ainda assim teríamos o RENDER RESPONSE RECRIANDO os componentes quando o RESTORE VIEW iria criar pela primeira vez. Enfim... Questão estranha.

  • GABARITO: B

  • Inicialmente, vamos dar uma breve explanação sobre a tecnologia JavaServer Faces (JSF).

    De acordo com o site da Oracle [1], JSF é uma tecnologia da plataforma JAVA EE que estabelece um padrão para a construção de interfaces com o usuário do lado do servidor. O JSF simplifica o desenvolvimento WEB, fornecendo uma abordagem centrada em componentes para o desenvolvimento de interfaces de usuário. Além disso, o JSF garante que as aplicações sejam bem projetadas com maior capacidade de manutenção, integrando o padrão de design Model-View-Controller (MVC) em sua arquitetura.

    A figura abaixo ilustra o ciclo de vida do padrão Requisição-Resposta do JSF:


    Fonte: Tutorial do JSF no site oficial da Oracle

    Dito isso, para responder essa questão, vamos usar, além do site da Oracle, a mesma referência bibliográfica utilizada pela banca: SAMPAIO (2011) [2].

    Vamos então para análise das alternativas:

    A) INCORRETA. Essa fase ocorre DEPOIS que a árvore de componentes (UIViewRoot) é restaurada.

    De acordo com SAMPAIO (2011) [2], nesta fase, "cada componente da UIViewRoot analisa o valor passado para ele dentro do pedido HTTP, armazenando-o localmente". Ademais, se houver algum erro de conversão, uma mensagem é gerada no FacesContext para posterior exibição.

    Por fim, segundo o supracitado autor, "após esta etapa, podem ocorrer eventos que levem à renderização imediata da página ou ao término da resposta".

    B) CORRETA. Conforme SAMPAIO (2011) [2]: "Nesta fase, o JSF recria a árvore de componente da página (UIViewRoot), dispara validadores nos componentes da UIViewRoot e a atualiza dentro do objeto FacesContext." (grifou-se)

    C) INCORRETA.  De acordo com SAMPAIO (2011): "Nesta fase, o JSF processa todos os validadores registrados para cada componente da UIViewRoot, verificando se todas regras se aplicam aos valores armazenados na fase anterior. Podem ocorrer eventos, erros de validação e conversão, gerando mensagens e/ou encerrando a resposta".

    D) INCORRETA. De acordo com SAMPAIO (2011): "Nesta fase, caso exista algum evento de aplicação, como o envio de um formulário HTTP, ou o acionamento de outra página JSF, então é processado neste momento".

    E) INCORRETA.
    De acordo com SAMPAIO (2011): "Durante esta fase, o 'render kit' é chamado para cada componente e a tecnologia de visualização é invocada. Ela pode ser JSP ou Facelets, que é o default da versão JSF 2.0"

    Gabarito do professor: Letra B.

    REFERÊNCIAS:
    [1] ORACLE. JavaServer Faces. Disponível em: site da Oracle referente à tecnologia JSF. Acesso em: 8/7/2020; [2] SAMPAIO, Cleuton. Java Enterprise Edition 6: desenvolvendo aplicações corporativas. Rio de Janeiro: Brasport, 2011.
  • questão estranha o colega foi legal com a banca

    questão absurda isso sim, tem que tomar só a primeira parte ("recria") e ir por tradução "recria = restaura = restore" pra não confundir, e olhe lá.. se pegar o resto da assertiva dá para ir para outras alternativas tranquilamente

  • a) Ciclo de vida do JSF

    Fase 1: Restore View: recria a árvore de componentes da página e a atualiza dentro do objeto FacesContext.

    Fase 2: Apply Request Values: popula os componentes com os valores obtidos do request e realiza a conversão de valores.

    Fase 3: Process Validation: realiza a validação dos dados obtidos do request.

    Fase 4: Update Model Values: atualiza os managed beans com os valores obtidos e validados.

    Fase 5: Invoke Application: invoca as ações associadas aos componentes.

    Fase 6: Render Response: renderiza os componentes, gerando a visão para o usuário.

    Fonte: meus resumos.