Caros,
Estou validando a matrícula do usuário em um cadastro e quero jogar a mensagem de erro, no caso de matrícula errada, no componente.
Estou usando a tag <<tr:messages> e ta me retornando a mensagem, mas tb ta validando os outro campos tb.
<tr:inputText id="mat" maximumLength="11" value="#{transferenciaBean.entity.transferenciaPk.aluno.matriculaAluno}"
required="true" columns="10" autoSubmit="true" immediate="true" valueChangeListener="#{transferenciaBean.validarMatricula }">
</tr:inputText>
<tr:messages for="mat"></tr:messages>
Qdo a matrícula é incorreta a mensagem aparece, mas ta aparecendo tb as validações do outros campos to formulatio. Eu so preciso da validação do componete da matrícula.
No meu Bean eu seto uma mensagem a um objeto FasesMessage e seto no contexo passando o Id do componente como mostra no trexo de código abaixo.
public void validarMatricula(ValueChangeEvent event) {
try {
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage mensagem = new FacesMessage("Matrícula inválida.");
String matricula = new String((String) event.getNewValue());
this.aluno = getMatriculaId(matricula);
if (aluno.size() == 0) {
context.addMessage(event.getComponent().getClientId(context), mensagem);
}
context.getRenderResponse();
} catch (Exception ex) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,ex.getMessage(),null));
ex.printStackTrace();
}
}
Alguem?