Ciclo de vida - JSF - Licao II
Autor: Amélia Pessoa | Publicado: 2012-01-23T05:47:00-08:00



Ciclo de vida JSF

&nbsp;

Você &nbsp;pode &nbsp;desenvolver &nbsp;uma &nbsp;aplicação &nbsp;completa &nbsp;em &nbsp;JSF &nbsp;sem &nbsp;conhecer &nbsp;todos &nbsp;os&nbsp;detalhes deste framework, porém quanto mais você souber sobre ele, melhor e mais produtivo&nbsp;você se tornará.&nbsp;



Ao &nbsp;executar &nbsp;uma &nbsp;página &nbsp;construída &nbsp;usando &nbsp;componentes &nbsp;JSF, &nbsp;ela &nbsp;passará &nbsp;por &nbsp;um&nbsp;ciclo de vida de processamento bem definido, constituído por 6 fases, como seguem:&nbsp;

&nbsp;

1. Restaurar visão&nbsp;

2. Aplicar valores de requisição&nbsp;

3. Processar validações&nbsp;

4. Atualizar os valores do modelo&nbsp;

5. Invocar a aplicação&nbsp;

6. Renderizar a resposta&nbsp;

&nbsp;








Vamos detalhar essas fases:




1. Restaurar visão&nbsp;

&nbsp;

Recupera &nbsp;a &nbsp;hierarquia &nbsp;de &nbsp;componentes &nbsp;para &nbsp;a &nbsp;página&nbsp;solicitada, &nbsp;se &nbsp;ela &nbsp;foi &nbsp;exibida &nbsp;anteriormente, &nbsp;ou &nbsp;constrói &nbsp;uma &nbsp;nova &nbsp;hierarquia &nbsp;de &nbsp;componentes,&nbsp;se for a primeira exibição.&nbsp;

Se &nbsp;a &nbsp;página &nbsp;já &nbsp;tiver &nbsp;sido &nbsp;exibida, &nbsp;todos &nbsp;os &nbsp;componentes &nbsp;são &nbsp;recuperados &nbsp;em &nbsp;seu&nbsp;estado &nbsp;anterior. &nbsp;Isso &nbsp;dá &nbsp;condições &nbsp;dos &nbsp;dados &nbsp;de &nbsp;um &nbsp;formulário &nbsp;submetido &nbsp;ao &nbsp;servidor &nbsp;serem&nbsp;recuperados, caso ocorra &nbsp;algum problema de validação ou restrição de regra de negócio. Por&nbsp;exemplo, &nbsp;se &nbsp;um &nbsp;formulário &nbsp;solicita &nbsp;campos &nbsp;obrigatórios &nbsp;que &nbsp;não &nbsp;são &nbsp;totalmente &nbsp;preenchidos,&nbsp;porém &nbsp;enviados &nbsp;pelo &nbsp;usuário, o &nbsp;mesmo formulário &nbsp;deve &nbsp;aparecer &nbsp;novamente &nbsp;com &nbsp;os &nbsp;campos&nbsp;que não estavam vazios já preenchidos, porém com mensagens de erro indicando os campos&nbsp;requeridos.&nbsp;

&nbsp;

2. Aplicar valores de requisição&nbsp;

&nbsp;

Nesta &nbsp;fase, &nbsp;cada &nbsp;componente &nbsp;tem &nbsp;a &nbsp;chance &nbsp;de &nbsp;atualizar &nbsp;seu &nbsp;próprio &nbsp;estado &nbsp;com informações que vieram da requisição.





3. Processar validações&nbsp;

&nbsp;

Nesta &nbsp;fase, &nbsp;os &nbsp;valores &nbsp;submetidos &nbsp;são &nbsp;convertidos &nbsp;em &nbsp;tipos &nbsp;específicos &nbsp;e &nbsp;anexados&nbsp;aos componentes. Quando você programa uma página em JSF, você pode incluir validadores&nbsp;para criticarem os valores recebidos pelos usuários. Neste momento, os validadores entram em&nbsp;ação e, se ocorrerem erros de conversão ou de validação, a fase de renderização de resposta (6)&nbsp;é &nbsp;invocada &nbsp;imediatamente, &nbsp;pulando &nbsp;todas &nbsp;as &nbsp;outras &nbsp;fases, &nbsp;e &nbsp;exibindo &nbsp;a &nbsp;página &nbsp;atual&nbsp;novamente, para que o usuário possa corrigir os erros e submeter os dados mais uma vez.&nbsp;

&nbsp;

4. Atualizar os valores do modelo&nbsp;

&nbsp;

Durante &nbsp;esta &nbsp;fase, &nbsp;os &nbsp;valores &nbsp;anexados &nbsp;(chamados &nbsp;de &nbsp;valores &nbsp;locais) &nbsp;aos&nbsp;componentes são atualizados nos objetos do modelo de dados e os valores locais são limpos.&nbsp;

&nbsp;

5. Invocar a aplicação&nbsp;

&nbsp;

Na &nbsp;quinta &nbsp;fase, &nbsp;os &nbsp;eventos &nbsp;que &nbsp;originaram &nbsp;o &nbsp;envio &nbsp;do &nbsp;formulário &nbsp;ao &nbsp;servidor &nbsp;são&nbsp;executados. Por exemplo, ao clicar em um botão para submeter um cadastro, a programação&nbsp;do &nbsp;evento &nbsp;deste &nbsp;botão &nbsp;deve &nbsp;ser &nbsp;executada. &nbsp;Em &nbsp;alguns &nbsp;casos, &nbsp;a &nbsp;execução &nbsp;do &nbsp;evento &nbsp;pode&nbsp;retornar um identificador dizendo qual é a próxima página a ser exibida, ou simplesmente não&nbsp;retornar nada para re-exibir a mesma página.&nbsp;

&nbsp;

6. Renderizar a resposta&nbsp;

&nbsp;

Por &nbsp;último, &nbsp;a &nbsp;fase &nbsp;de &nbsp;renderização &nbsp;da &nbsp;resposta &nbsp;gera &nbsp;a &nbsp;saída &nbsp;com &nbsp;todos &nbsp;os&nbsp;componentes nos seus estados atuais e envia para o cliente. O ciclo recomeça sempre que o&nbsp;usuário interage com a aplicação e uma requisição é enviada ao servidor. Dúvidas? Comentários? Deixe seu recado ou use o grupo de estudos: https://groups.google.com/group/estudos-online.