Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Mensagem Não aparece na aplicação - AVISO: FacesMessage(s) foram enfileirados, mas podem não ter sido exibidos.

Boa tarde,

Estou desenvolvi uma classe para apresentar mensagem de erro na tela e a mesma não aparece, exibindo a mensagem de erro abaixo:

"INFORMAÇÕES: AVISO: FacesMessage(s) foram enfileirados, mas podem não ter sido exibidos. sourceId=null[severity=(ERROR 2), summary=(ddddddddddd), detail=(ddddddddddd)] nov 20, 2018 3:43:27 PM com.sun.faces.renderkit.html_basic.MessageRenderer encodeEnd ADVERTÊNCIA: 'for' attribute cannot be null "

JsfUtil

package br.com.caelum.livraria.util;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
//import javax.swing.JOptionPane;

public class JsfUtil {


    public static void addErrorMessage(String msg) {

        System.out.println("classe JsfUtil - A1");

        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
        FacesContext.getCurrentInstance().addMessage(null, facesMsg);

        System.out.println("classe JsfUtil - A2");

    }

    public static void addSuccessMessage(String msg) {

        FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);

        FacesContext.getCurrentInstance().addMessage("successInfo", facesMsg);

    }

}

LivroBean

package br.com.caelum.livraria.bean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
//import com.sun.javafx.collections.MappingChange.Map;
import br.com.caelum.livraria.dao.DAO;
import br.com.caelum.livraria.modelo.Autor;
import br.com.caelum.livraria.modelo.Cadastro;
import br.com.caelum.livraria.util.JsfUtil;

@ManagedBean
@ViewScoped
public class LivroBean {

    private Cadastro livro = new Cadastro();
    private Integer autorId;

    private ArrayList<Cadastro> listaRelatorio = new ArrayList<Cadastro>();

    HashMap<JTextField, Boolean> camposVerificados = new HashMap<JTextField, Boolean>();

    public void setAutorId(Integer autorId) {
        this.autorId = autorId;
    }
    public Integer getAutorId() {
        return autorId;
    }
    public Cadastro getLivro() {
        return livro;
    }

    //POPULA COMBO BOX
    public List<Autor> getAutores(){
        return new DAO<Autor>(Autor.class).listaTodos();
    }
    public List<Autor> getAutoresDoLivro(){
        return this.livro.getAutores();
    }
    public  void gravarAutor(){
        Autor autor = new DAO<Autor>(Autor.class).buscaPorId(this.autorId);

        this.livro.adicionaAutor(autor);
        System.out.println("Livro escrito por: " +autor.getNome());
    }
    public void gravar() {

        if (livro.getRequisicao().isEmpty() || livro.getArea().isEmpty() || livro.getNomerelatorio().isEmpty()|| livro.getLink().isEmpty() ||
            livro.getObjetivo().isEmpty()   || livro.getSolicitante().isEmpty() || livro.getSigla().isEmpty() || livro.getDiretoria().isEmpty() ||
            livro.getResponsavel().isEmpty() || livro.getDescricao().isEmpty()){

            JsfUtil.addErrorMessage("ddddddddddd");

             System.out.println("classe gravar - A1");

        }else{
              new DAO<Cadastro>(Cadastro.class).adiciona(this.livro);
            this.livro = new Cadastro();
            JsfUtil.addErrorMessage("Gravado com Sucessooooo!! "); 
        }        
    }

    public void buscar(){
        try{

            new DAO<Cadastro>(Cadastro.class).listaTodos();
            this.livro = new Cadastro();

            JsfUtil.addErrorMessage("Não cosnultado");

        }catch (Exception e) {

        }
    }
    public ArrayList<Cadastro> getListaRelatorio() {

        new DAO<Cadastro>(Cadastro.class).listaTodos();
        return listaRelatorio;
    }
    public void setListaRelatorio(ArrayList<Cadastro> listaRelatorio) {
        this.listaRelatorio = listaRelatorio;
    }


}
3 respostas

cadastro.xhtml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:b="http://bootsfaces.net/ui"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

<!-- INCLUIR COMANDO AJAX     10/09/018        -->
<!--  <h:head /> -->

<div>
<ui:insert>
    <ui:include src="_template.xhtml"/>

</ui:insert>
</div>        

<h:form>
    <h:message/> 
    <b:container fluid="true" style="width:100%">
        <b:row>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Requisição:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText id="requisicao" value="#{livroBean.livro.requisicao}"  
                 validatorMessage="Requisição não pode ser superior a 40"/>       
            </b:column>
            <b:column medium-screen="1">      
            </b:column>           
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Solicitante:" />
            </b:column>            
            <b:column medium-screen="4">
                <b:inputText id="solicitante" value="#{livroBean.livro.solicitante}" 
                 validatorMessage="Área não pode ser superior a 40"/>
            </b:column>
            <b:column medium-screen="1">             
            </b:column>
        </b:row>
        <b:row>    
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Área:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText id="area" value="#{livroBean.livro.area}" 
                 validatorMessage="Área não pode ser superior a 40"/>
            </b:column>
            <b:column medium-screen="1">               
            </b:column>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Sigla:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText  id="sigla" value="#{livroBean.livro.sigla}" 
                 validatorMessage="Sigla não pode ser superior a 13" />
            </b:column>
            <b:column medium-screen="1">            
            </b:column>
        </b:row>
        <b:row>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Nome Relatório:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText id="nomerelatorio" value="#{livroBean.livro.nomerelatorio}" 
                 validatorMessage="Nome Relatório não pode ser superior a 3000"  />
            </b:column>
            <b:column medium-screen="1">              
            </b:column>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Diretoria:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText  id="diretoria" value="#{livroBean.livro.diretoria}" 
                 validatorMessage="Diretoria não pode ser superior a 40" />
            </b:column>
            <b:column medium-screen="1">               
            </b:column>
        </b:row> 
 <b:row>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Link:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText id="link" value="#{livroBean.livro.link}" 
                 validatorMessage="Link não pode ser superior a 40"  />
            </b:column>
            <b:column medium-screen="1">               
            </b:column>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Responsável:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputText id="responsavel" value="#{livroBean.livro.responsavel}" 
                 validatorMessage="Responsável não pode ser superior a 40"  />
            </b:column>
            <b:column medium-screen="1">               
            </b:column>
        </b:row>
        <b:row>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Objetivo:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputTextarea id="objetivo" value="#{livroBean.livro.objetivo}" 
                 validatorMessage="Objetivo não pode ser superior a 40" />
            </b:column>
            <b:column medium-screen="1">               
            </b:column>
            <b:column medium-screen="1" style="text-align:right">
                <h:outputText value="Descrição:" />
            </b:column>
            <b:column medium-screen="4">
                <b:inputTextarea id="descricao" value="#{livroBean.livro.descricao}" 
                 validatorMessage="Descrição não pode ser superior a 40" />
            </b:column>
            <b:column medium-screen="1">              
            </b:column>
        </b:row>
        <br />
        <b:row>
            <b:column span="7" offset="7"  size="sm" >
                <b:commandButton value="Salvar" class="buton" action="#{livroBean.gravar}" look="primary" style="width:100px" />             
            </b:column>                    
        </b:row>
    </b:container>


</h:form>
</html>

Quando o erro fala 'for' attribute cannot be null " qual for será que ele está se referindo?