Jsf, campos irem aparecendo conforme preencho um deles
3 respostas
A
andrests.sp
Galera,
Estou desenvolvendo uma tela de login com jsf, da seguinte maneira:
Tenho um campo de email, quando o usuario preenche ai aparece do lado mais dois campos para ele preencher, um se ele ja tem registro e outro se ele nao tem,
Este esquema de ir aparecendo os campos, nao consigo ter uma ideia de como faze-lo. Andei vendo umas documentacoes mas sem sucesso,
privateBooleancampo1Ativado=false;privateBooleancampo2Ativado=false;/** * Listener ajax que atualiza os flags para renderizar campo 1 e 2 */publicvoidloginListener(){FacesContextcontext=FacesContext.getCurrentInstance();UIInputui=(UIInput)findComponent(context.getViewRoot(),"login");if(ui==null)return;Stringnome=(String)ui.getSubmittedValue();// Vazio não ativa nem um nem outroif(nome==null||nome.isEmpty()){campo1Ativado=false;campo2Ativado=false;return;}// Aqui você colocaria sua validação de usuárioif(nome.equalsIgnoreCase("joao")){// Usuario existentecampo1Ativado=true;campo2Ativado=false;}else{// Usuário novocampo1Ativado=false;campo2Ativado=true;}}/** * Retorna o valor de um componente * @param parent * @param id * @return */protectedUIComponentfindComponent(UIComponentparent,Stringid){if(id==null)returnnull;if(id.equals(parent.getId())){returnparent;}Iterator<UIComponent>kids=parent.getFacetsAndChildren();while(kids.hasNext()){UIComponentkid=kids.next();UIComponentfound=findComponent(kid,id);if(found!=null){returnfound;}}returnnull;}
Obs. Se for outra implementação jsf será bem parecido, teria que adaptar o <p:ajax> somente.
A
andrests.sp
Jamir,
Obrigado pela ideia, vou analisar e dar uma implementada,
abraço
C
Cl_dio_Rocha
Acredito que também seja possível implemetar essa rotina com JQuery.