Estava utilizando os componentes f:viewParam e f:viewAction e gostaria de enviar uma mensagem ao usuário caso no id informando no parâmetro não existisse. Como fazer isso? Tentei utilizar o código baixo mas a mensagem não é exibida.
public void carregarAutorPelaId() {
this.autor = new DAO<Autor>(Autor.class).buscaPorId(this.autor.getId());
if (this.autor == null) {
System.out.println("carregarAutorPelaId");
this.autor = new Autor();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Autor não existente no banco de dados."));
}
}
Observação: Adicionei o h:messages no jsp do autor.xhtml, mas não adiantou. A mensagem do console do eclipse foi:
INFORMAÇÕES: AVISO: FacesMessage(s) foram enfileirados, mas podem não ter sido exibidos.
sourceId=null[severity=(INFO 0), summary=(Autor não existente no banco de dados.), detail=(Autor não existente no banco de dados.)]
Abaixo código dos componentes jsf utilizados
<h:messages/>
<f:metadata>
<f:viewParam name="autorId" value="#{autorBean.autor.id}" />
<f:viewAction action="#{autorBean.carregarAutorPelaId}" if="#{param.autorId != null}"/>
</f:metadata>