Olá, pessoal.
Vi nesse link http://www.guj.com.br/java/259149-resolvidomensagem-de-sistema-em-componente-primefaces-growl-nao-quer-aparecer/2 que o cara tinha mais ou menos a mesma dúvida que eu. Porém, não consegui resolver através desse tópico.
Talvez não esteja enxergando alguma coisa.
O caso é que tenho uma página de busca onde, dado os critérios da busca, mostro os funcionários em um dataTable.
Para cada registro exite um botão “Alterar”.
Clicando nesse botão, eu passo para uma outra página de cadastro, com os campos do funcionário preenchidos.
Clico em salvar e volto para a página de busca. E é nesse momento que quero mostrar uma mensagem através do p:growl.
Segue o código do botão Alterar da tela de busca:
<p:column>
<h:form>
<p:button outcome="/funcionario/form" value="Alterar">
<f:param name="codigoFilial" value="#{cadastradoPor.filial.codigo}"/>
<f:param name="matricula" value="#{cadastradoPor.codigo}"/>
</p:button>
</h:form>
</p:column>
Na página de cadastro, onde é feita a alteração, chamo o método save abaixo:
public String save(){
funcionarioService.save(funcionario);
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Aviso","Funcionário alterado com sucesso!"));
return "/funcionarios.jsf";
}
Sem tentar inserir a mensagem, funciona tudo perfeitamente.
Quando tento colocar a mensagem, recebo o um java.lang.IllegalStateException.
Não sei se tem a ver, pois estou começando agora a entender um pouco dessas annotations, mas meu controller está marcado com as annotations
@ManagedBean
@ViewScoped
Obrigado a todos!