packagept.validatorAD;importjavax.faces.application.FacesMessage;importjavax.faces.component.UIComponent;importjavax.faces.context.FacesContext;importjavax.faces.validator.Validator;importjavax.faces.validator.ValidatorException;publicclasstesteValidadorimplementsValidator{publicvoidvalidate(FacesContextcontext,UIComponentcomponent,Objectvalue)throwsValidatorException{try{booleanconservador=LDAPManager.Grupo("val1","val2","val3");if(conservador==true){System.out.println("true.................................................");FacesContext.getCurrentInstance().addMessage("erro",newFacesMessage("Conservador..tudo bem..."));}else{System.out.println("false.................................................");FacesContext.getCurrentInstance().addMessage("erro",newFacesMessage("Insira um utilizador do grupo"));}}catch(Exceptione){e.printStackTrace();}}}
Para alem de ele não chegar a entrar nesta classe não sei como depois passar mensagens para a pagina xhtml… :S
GraveDigger
Bom, eu nunca fiz um validator, mas vai um palpite.
Colocar o fullQualifiedName da classe em ao invés de apenas o pacote deve resolver :lol:
na classe tabela.java inclui o meu metodo validate da seguinte maneira…
publicvoidvalidate(FacesContextcontext,UIComponentcomponent,Objectvalue)throwsValidatorException{try{booleanconservador=LDAPManager.Grupo("valor2","valor1","valor");if(conservador==true){System.out.println("true.................................................");//tudo ok ((UIInput) component).setValid(true);}else{System.out.println("false.................................................");//erro de validaçao((UIInput)component).setValid(false);context.addMessage(component.getClientId(context),newFacesMessage("mensagem de erro..."));}}catch(Exceptione){e.printStackTrace();}}
não precisa de colocar mais nada… assim que o perder o focus da caixa de texto ele faz a validação e mostra a mensagem ou não dependente da validação =)