A validação do JSF é do lado do cliente ou do lado do servidor?

Eu implementei minha lógica de validação da seguinte maneira:

   

Eu leio muito sobre a validação de clientside e serverside e sobre suas vantagens e desvantagens. Mas não tenho ideia sobre o que o código acima faz.

Alguém pode por favor explicar isso 🙂

Felicidades

Na validação do lado do cliente, é o cliente (webbrowser) que valida a input com a ajuda de uma linguagem do lado do cliente, por exemplo, JavaScript. Na validação do lado do servidor, é o servidor (servidor da Web) que valida a input com a ajuda de uma linguagem do lado do servidor, por exemplo, Java.

Você nunca deve fazer apenas validação do lado do cliente, porque o resultado é controlável (e, portanto, também passível de hacking / spoofable) pelo usuário final. Normalmente, você gostaria de usar a validação do lado do cliente, pois fornece um retorno muito mais rápido. O usuário final não precisa aguardar a conclusão do envio do formulário e não precisa enfrentar um “flash de conteúdo” (a página é excluída e depois é exibida novamente com novo conteúdo). Você gostaria de usar a validação do lado do servidor para garantir a integridade dos dados enviados. O usuário final não tem controle sobre o resultado da validação do lado do servidor.

No caso do JSF, a validação é sempre do lado do servidor. Desde o JSF 2.0, é possível enviar um formulário (e, portanto, validar o formulário) usando a funcionalidade ajaxical incorporada. Isso combina o melhor dos dois mundos: ter feedback instantâneo sem flash de conteúdo e a robustez / integridade da validação do lado do servidor.