Um das decisões mais debatidas em JSF ou Seam e que os desenvolvedores dão pouca importância é onde salvar a árvore de componentes da view. Há duas opções disponíveis: do lado do cliente (client-side) e do lado do servidor (server-side), cada uma com suas vantagens e desvantagens.
Para entender melhor, vamos ver o ciclo de vida do JSF, entender em que contexto se encontra a criação da árvore de componentes, e porque ela existe:
Leia mais
Dando continuidade ao assunto anterior, vou agora mostrar como criar converter e validator de CNPJ. Lembrando que a lógica de validação/conversão vai estar completamente inserida dentro das classes que implementam javax.faces.convert.Converter e javax.faces.validator.Validator. Aqui no meu trabalho colocamos essa lógica em classes Java separadas. Geramos um jar com essas classes e então colocamos esse jar no classpath da aplicação, evitando replicação de código.
Outro detalhe é que a classe de validação lança uma exception chamada FormatoCNPJException que é uma classe que extende Exception quando o CNPJ é inválido apenas para o código ficar mais claro. Não vou colocar o código dessa classe aqui no post para o artigo não ficar muito grande, portanto será necessário implementar essa classe caso você queira testar meu exemplo de validação.
Se você deseja entender melhor o que é um converter ou um validator, ou como eles funcionam, consulte meu post anterior aqui.
Leia mais
Recentemente me deparei no trabalho com alguns sistemas que exigiam a validação/formatação de CPF e de CNPJ. Achei que poderia solucionar o problema com javascript, mas considerei melhor criar validator e converter para cada um dos casos.
Nessa primeira etapa, vou mostrar a conversão e validação de CPF. Ressalto que a lógica de validação/conversão vai estar completamente inserida dentro das classes que implementam javax.faces.convert.Converter e javax.faces.validator.Validator. Aqui no meu trabalho colocamos essa lógica em classes Java separadas. Geramos um jar com essas classes e então colocamos esse jar no classpath da aplicação, evitando replicação de código.
Outro detalhe é que a classe de validação lança uma exception chamada FormatoCPFException que é uma classe que extende Exception quando o CPF é inválido apenas para o código ficar mais claro. Não vou colocar o código dessa classe aqui no post para o artigo não ficar muito grande, portanto será necessário implementar essa classe caso você queira testar meu exemplo de validação.
Leia mais