Eu tenho um cadastro no JSF que é composto por vários campos e muitos deles são referenciados por outras tabelas. Para facilitar o entendimento de vocês imagine duas simples tabelas. PAIS e ESTADO onde:
TABLE PAIS:
ID_PAIS
NOME
TABLE ESTADO
ID_ESTADO
PAIS
NOME
Com isso tenho o seguinte formulario: FORMULARIO DO ESTADO
Eu gostaria de que no ONCHANGE do campo eu pudesse chamar um metodo do controller ( metodo SEARCHIDESTADO )
e validar o estado assim que o usuário digitasse o valor. Como seria para eu fazer isso ? Tem jeito de fazer isso e de preferencia usando
JSF ?
private int numberLovDummy = 0;
public String ckAsPerfil(){
asPerfilDAO perfilDAO = new asPerfilDAO();
System.out.println("-------------------- "+this.getNumberLovDummy());
this.asPerfilCtr = perfilDAO.searchId(1);
this.auxLovDummy = this.getAsPerfilCtr().getDescricao();
return "teste";
}
public int getNumberLovDummy() {
return numberLovDummy;
}
public void setNumberLovDummy(int numberLovDummy) {
this.numberLovDummy = numberLovDummy;
}
Sempre que faço o onchange no campo ele dispara o metodo asController.ckAsPerfil. Reparem que o value do campo é um atributo do meu managed-bean chamado numberLovDummy.
O problema é que toda vez que efetuo o onchange o managed-bean não recebe o valor que eu coloquei no inputText. Está sempre vindo o valor zero.
O que está errado ?
Deixei o número 1 fixo para testar e mandei dar um System.out.print do numberLovDummy e ele só vem zero.
No código do seu Managed-Bean, tem a seguinte linha:
Tente alterar esse atributo para
e não inicialize ele com zero, deixe ele null mesmo. O JSF vai se encarregar de preencher o valor dele.
Acho que assim vai funcionar. Retire também o immediate = true.