Pessoal Seguinte, eu baixei a biblioteca JSFUtil para apresentar mensagens de erro, abaixo segue a classe:
package br.com.robson.sigor2.util;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
public class JSFUtil {
public static void adicionarMenssagemSucesso(String mensagem) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, mensagem, mensagem);
FacesContext contexto = FacesContext.getCurrentInstance();
contexto.addMessage(null, msg);
}
public static void adicionarMenssagemErro(String mensagem) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, mensagem, mensagem);
FacesContext contexto = FacesContext.getCurrentInstance();
contexto.addMessage(null, msg);
}
abaixo está um método que utilizei a classe, a lógica diz que se ele atender uma certa condição ele deve fazer um UPDATE no banco de dados:
public void editar2() {
try {
DaoObra obra = new DaoObra();
ArrayList<DomainObras> lista_obra = obra.listar();
for (DomainObras ob : lista_obra) {
if(manancial.getCod_digito() == ob.getCod_obra()){
DaoManancial dao_manancial = new DaoManancial();
dao_manancial.editar(manancial);
JSFUtil.adicionarMenssagemSucesso("Manancial incluido !!");
}else {
JSFUtil.adicionarMenssagemErro("Obra não existe");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Até ai tudo bem, está funcionando e também está atualizando no banco de dados certinho. O problema são as mensagens de erro, por exemplo, quando a lógica acima não é atendida ele não faz o UPDATE, o que eu esperava, mas eu achei estranho é que ele apresenta três mensagens de erro, como na imagem a baixo:
E quando a lógica é atendida, ele faz o UPDATE certinho, porém aparece uma mensagem de sucesso e duas de erro, como na imagem abaixo:
Não entendo porque as mensagens de erro estão aparecendo triplicada dessa forma, e quando atende a condição porque aparece uma mensagem de sucesso e duas de erro?? Se alguém observou alguma coisa que eu não vi por favor me ajudem. Obrigado.