Estou utilizando o JSF em um formulário de cadastro, onde o primeiro campo é o código. Eu gostaria de fazer com que quando a pessoa digitar este código, o sistema verifique se ele já está cadastrado. Se estiver, retorna os dados, preenchendo o formulário todo.
Teria como fazer esta busca quando o cara tira o foco do campo (usando por exemplo o evento OnBlur chamando um JavaScript q envia o form)??? Ou tenho q fazer um botão buscar com uma action?
Mesmo que eu fizer com um botão, tenho um problema: o form possui outros campos que são obrigatórios (marcados com o required = ‘true’), portanto ele não será enviado qdo cliar no buscar.
Qual a melhor maneira de se resolver isso? Alguém teria um exemplo prático e poderia me enviar??
No onBlur() do componente você coloca um “submit()”.
gustavodelgado
Mas se eu usar o onBlur, como vou fazer ele utilizar uma action que faz o select e retorna o registro caso ele exista?
E também o submit não funcionará por causa dos outros campos que são obrigatórios.
toninho
ou entao vc usa o commandButton e define a propriedade immediate=“true”…
Dessa forma, qdo vc clicar o botão ele vai executar a action, pulando a fase de validacao para os outros campos de preenchimento obrigatório.
gustavodelgado
Colocando o immediate=“true” ele envia o formulário? Não sei se estou fazendo algo errado, mas meu objeto está vindo nulo.
toninho:
ou entao vc usa o commandButton e define a propriedade immediate=“true”…
Dessa forma, qdo vc clicar o botão ele vai executar a action, pulando a fase de validacao para os outros campos de preenchimento obrigatório.
Mauricio_Linhares
“immediate=true” deveria garantir que a sua ação vai ser executada antes da validação ser aplicada.
gustavodelgado
Certo, mas ele cria o JavaBean com os valores q estão no form? Eu precisaria dele para pegar o código que o cara digitou. Quando eu faço
Convenio c = (Convenio)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(“Convenio”);
O meu c está vindo nulo.
afamorim
O que vc quer fazer é o vaklidator para o seu codigo.
de uma olhada nos componentes do adf faces da oracle.
ja estão disponiveis no site do myfaces, com a nomenclatura antiga.
quando vc baixar ele vai vim com varios exemplos.
procure algo com ajax para ficar mais elegante.
outra forma de se fazer seria vc colocar um metodo validator.
quando vc submete-se ele validaria seu codigo, mais vc perderia o lance de a cada clique vc validar se o codigo ja existe.
ps: ja tem um componente no sandbox, que algo que sugere, a cada clique ele vai sugerindo os existentes.