Caros,
Estou iniciando agora com JSF e encontrei um problema que aparentemente pareceu simples, mas estou quebrando a cabeça!!! :shock:
Tenho dois campos:
E-mail
Confirmação de e-mail:
Eu preciso que os dois campos acima sejam iguais e esta validação não pode ser feita em JavaScript.
MANIFESTACAO.jsf<h:outputText value="E-mail*: " styleClass="label" />
<h:inputText
value="#{manifestacaoMB.ente.governante.email}"
size="28"
required="true"
requiredMessage="E-mail do Prefeito/Governador é obrigatório!"
maxlength="40">
<f:validator validatorId="emailValidator" />
<f:validator validatorId="emailConfirmacaoValidator" />
</h:inputText>
<h:outputText value="E-mail - confirmar*: " styleClass="label" />
<h:inputText
id="emailPrefeitoGovernadorConfirmacao"
value="#{manifestacaoMB.emailPrefeitoGovernadorConfirmacao}"
size="28"
required="true"
validatorMessage="E-mail de confirmação do Prefeito/Governador está inválido!"
requiredMessage="E-mail de confirmação do Prefeito/Governador é obrigatório!"
maxlength="40">
<f:validator validatorId="emailValidator" />
</h:inputText>
Observem que no campo e-mail eu invoco duas classes: emailValidator(validação de e-mail...se tem arroba, etc.), a outra classe é a emailConfirmacaoValidator, que aí que mora o problema, vejam o código:
EmailConfirmacaoValidator.javapackage br.gov.mds.bpc.validator;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import br.gov.mds.bpc.ui.ManifestacaoMgrBean;
public class EmailConfirmacaoValidator implements Validator {
public void validate(FacesContext context, UIComponent component, Object obj)
throws ValidatorException {
ManifestacaoMgrBean teste = new ManifestacaoMgrBean();
String emailPrincipal = (String) obj;
String emailPrefeitoGovernadorConfirmacao = teste.getEmailAlternativoPrefeitoGovernadorConfirmacao();
if (!emailPrincipal.equals((emailPrefeitoGovernadorConfirmacao)) )
{
throw new ValidatorException(new FacesMessage("O e-mail de confirmação do Prefeito/Governador não confere!"));
}
}
}
Então observem que estou tentando verificar pelo equals se o e-mail = e-mail de confirmação. O que está acontecendo é que eu consigo resgatar o valor do e-mail (emailPrincipal ), mas a variável emailPrefeitoGovernadorConfirmacao sempre vem null. Pq não estou conseguindo resgatar o valor dessa variável???? Como faço isso em JSF? :roll:
Valeuuuu!!!!