Fase 3. Process Validation
-executa os validadores registrados
-verifica regras/restrições de valores
⇒pré-definidas ou definidas pelo desenvolvedor
-método processValidators()
⇒marca o atributo valid dos componentes
⇒se falha: armazena erro em FacesContext
▹chama a fase RenderResponse
Ao total são 6 possíveis fases em que o seu componente pode passar durante a execução.
1 Restore View - Responsável por criar a arvore de componentes caso eles ainda não existam.
2 Apply Request Values - Responsável por pegar os valores que foram passados na requisição, fazer algumas conversões se for necessário e distribuir para o seu devido componente.
3 Process Validations - Responsável por pegar os valores que foram aplicados pela fase ‘Apply Request Values’ e validar junto com as entidades que foram declaradas no Bean.
4 Updates Model Values - Responsável por fazer o a reflexão das informações
5 Invoke Aplication - Responsável por realizar as chamadas das funções Action.
6 Render Response - Responsável por processar a pagina que vai ser devolvida ao usuário.
Ainda assim, é possivel que ao realizar algumas requisições o JSF não passe por todas essas fases, é normalmente aqui que temos os maiores problemas. Para que voce possa entender mais, vou citar alguns exemplos do que pode acontecer:
Primeira visualização de uma pagina:
Como na primeira visualização de uma pagina, não e preciso verificar executas tarefas de aplicar valores da requisição, validar informações ou atualizar informações. E preciso apenas processar a pagina e responder ele para o usuário, por isso passa apenas pelos ciclos ‘Restore View’ e ‘Render Response’.
Valores inválidos:
Quando submetemos um formulário que possuem algumas validações como por exemplo tipo, tamanho ou algumas condições, e necessário validar essas informações. Isso acontece na fase ‘Process Validations’, então se algo de errado acontecer aqui, pulamos direto na fase ‘Render Response’.
Fonte:
Resposta Letra B