Olá galera do GUJ estou tentando desenvolver um validator JSF para fazer comparação entre dois campos <h:inputText> , <h:inputTextArea>, etc…
ele verifica se a String é igual em ambos campos. Mas estou tento problemas para obter a referência ao componente de comparação pelo id:
import javax.faces.validator.Validador;
import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
import javax.faces.application.FacesMessage;
import javax.faces.validator.ValidatorException;
public class CompareValidator implements Validador {
public void validate(FacesContext context, UIComponent component, Object data) throws ValidatorException {
String text = (String)data;
String compareFieldId = (String)component.getAttributes().get("compareTo");
UIComponent compareField = context.getViewRoot().findComponent(compareFieldId);
...
if (! text.equals(compareText) ) {
throw new ValidatorException( new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message);
}
}
}
Andei pesquisando e vi que o método findComponent não localiza o componente pelo id, estou certo? alguem saberia me dizer como posso resolver esse problema? Muito obrigado a todos!