Quem e analista de sistemas ou programador com certeza ja passou por isso, a aplicacao esta pronta, ja na fase de homologacao no cliente e o encerragado solta uma perola querendo alterar a validacao de alguns campos, e o melhor PARA ONTEM!. Poderiamos alterar as classes de tratamento para contemplar as novas requisicoes, porem isso demanda um certo tempo, e custoso e algumas vezes a validacao e tao simples que nao compensa alterar toda a arquitetura da pagina para inclui-la, mas entao o que fazer? Podemos apelar para o quebra-galhos web universal o JavaScript! Mas espera um pouco, JavaScript e JSF nao combinam muito... Entao o que fazer?Existem alguns macetes para conseguir fazer o JavaScript se comunicar com os componentes criados pela aplicacao JSF, e estes macetes voce so aprende aqui! Primeiro: Tente sempre trabalhar com GetElement!A estrutura padrao de Html/JavaScript diz que os componentes da pagina sao renderizados de forma hierarquica (document.form.objeto.propriedade), para acessar o valor de um input por exemplo voce deveria solicitar document.formulario.objeto.value, porem esta forma e um tanto quanto falha, em websites muito dinamicos nem sempre e possivel saber o caminho completo de um componente, entao entra em acao o GetElement! GetElement funcionana mais ou menos assim: Voce informa algum parametro, e ele varre toda a tela procurando aquele parametro, nao importa onde ele esta se dentro ou fora do formulario, nao importa que objeto seja! Vamos utilizar como exemplo a busca por ID, ja que todos os objetos possuem um id, mesmo que voce nao informe os ids dos seus objetos, eles sao criados automaticamente, mas isso e uma ma pratica, sempre nomeie seus objetos! Entao digamos que:Ao clicar no submit queremos obter o valor de um input e se for menor que 10 devemos exibir um alerta informando o usuario, pintar o campo de amarelo e enviar o foco para ele. Entao devemos colocar na tag form a pripriedade onsubmit=nome_ta_funcao(), mas ate aqui e normal. Na funcao que esta o pulo do gato: variavel = document.getElementById(id_do_campo).value;Note que nao precisamos indicar o caminho inteiro do campo, apenas que ele esta neste documento, seu ID e o que queremos dele, no caso o value. Agora que possuimos o valor, podemos fazer a validacao! if(parseInt(variavel) < 10){ alert(o valor do campo + document.getElementById(id_do_campo).name + e menor que 10 );//Note que aqui a frase sera O valor do campo XXX e menor que 10 //Agora vamos pintar o fundo do campo!document.getElementById(id_do_campo).style.background = yellow;//Nesta linha alteramos o BackGround do campo para amarelo, atraves do estilo! document.getElementById(id_do_campo).focus();//Nesta linha passamos o foco para o campo. } Ok, ok, mas eu fiz tudo isso ai e fica dando uma mensagem de erro Objeto nulo ou invalido..... Muito bem, realmente o objeto e nulo, estes comandos funcionam perfeitamente mas em HTML puro, em JSF o javascript nao vai conseguir encontrar o campo pelo id normal, por que ele nao existe! O que acontece em JSF e que na renderizacao das paginas ele nomeia os IDs para NOME_DO_FORMULARIO DOIS PONTOS ID_DO_CAMPO. Ou seja... Se nosso campo esta dentro de um formulario cujo nome e cadastroForm e