Command Button - PrimeFaces

Sou iniciante em Java Web. Estou seguindo uma vídeo aula, mas quero fazer uma modificação e estou tendo dificuldade. A função é um botão de excluir em um arquivo xhtml, chamando um ManagedBean que faz a exclusão e depois envia uma mensagem de sucesso.

Atualmente, o programa exclui e envia a mensagem, mas mantem com os dados excluídos nos campos, o que gera um pouco de confusão. Caso a pessoa exclua novamente, o programa gera a mensagem de erro dizendo que o dado é null. Então, em termos de operação está funcionando certinho, mas gostaria que ao apertar o botão, a mensagem fosse mostrada na tela e depois que a página fosse redirecionada a outra (por exemplo, de uma página de cadastro para uma de listagem).

Seguem os códigos:
xhtml:
p:commandButton value=“Excluir” actionListener="#{fabricanteBean.excluir()}" update=":msgGlobal" rendered="#{fabricanteBean.acao == ‘Excluir’}"/>

ManagedBean

public void excluir() {
		try {
			FabricanteDAO fabricanteDAO = new FabricanteDAO();
			fabricanteDAO.excluir(fabricanteCadastro);
						
			FacesUtil.adicionarMsgInfo("Fabricante excluído com sucesso.");
		} catch (RuntimeException e) {
			FacesUtil.adicionarMsgErro("Erro ao excluir um fabricante: " + e.getMessage());
		}
	}

Alguma ideia de como fazer as duas ações, primeiro mostrar a mensagem e depois redirecionar a página?

Eu já tentei colocar o action no xhtml, mas ele direciona sem aparecer a mensagem, o que pode gerar uma dúvida ao usuário se o dado realmente foi apagado, principalmente quando tiver muitos dados no banco.

Obrigado.

Primeiramente você precisa mudar o comportamento do seu commandButton. Quando você deseja fazer redirecionamento deve utilizar action ao invés de actionLister.
Seu método no final seria algo do tipo

public String excluir(){
	try{
                FabricanteDAO fabricanteDAO = new FabricanteDAO();
		fabricanteDAO.excluir(fabricanteCadastro);
                FacesUtil.adicionarMsgInfo("Fabricante excluído com sucesso.");
	}catch (Exception e){
		FacesUtil.adicionarMsgErro("Erro ao excluir um fabricante: " + e.getMessage());
                    return ""; //Continua na mesma pagina
	}
	return "listagemFabricante"; //Pagina pra onde deseja ir
}

p:commandButton value="Excluir" actionListener="#{fabricanteBean.excluir()}" update="@form :msgGlobal" rendered="#{fabricanteBean.acao == 'Excluir'}"/>

Obrigado Gedson. Funcionou !! Show de bola!

Oi Luciano. Eu tentei da forma como tu sugeriste, mas não redirecionou para a outra página.

eu imaginava que o escopo do controller era @ViewScoped