Pessoal estou em fase de aprendizado java web, e estou com esse problema que não consigo solucionar. Ao clicar no botão novo do meu <p:commandButton ele abre um <p:dialog onde Cadastro o Gerente, depois de salvo no banco, o <p:dialog é fechado e queria que ele atualizasse a <p:dataTable somente com o valor que acabou de ser salvo, e não atualizando na listagem onde contem todos…
Segue os códigos
…
!) Meu cabeçalho do html e botão novo pra abrir o <p:dialog
<p:growl id="mensagem" />
<h:form id="formListagem">
<p:panel header="Gerente - Listagem">
<p:dataTable id="tabela" emptyMessage="Nenhum Registro Encontrado"
paginator="true" rows="5" value="#{gerenteController.listGerente}"
var="gerente">
<f:facet name="footer">
<p:commandButton value="Novo" oncomplete="PF('dialogo').show();"
actionListener="#{gerenteController.novo()}" update=":mensagem :formListagem:tabela " />
</f:facet>
<p:column headerText="Código">
<h:outputText value="#{gerente.codigo}" />
</p:column>
..
..
..
..
..
...
2)Meu <p:dialog com o <p:commandButton onde chamo o Controller pra salvar no banco e fechar o <p:dialog
...
...
...
...
<h:panelGrid columns="2">
<p:commandButton value="Salvar"
actionListener="#{gerenteController.salvar()}" icon="ui-icon-check"
update=":mensagem :formListagem:tabela"
oncomplete="´PF('dialogo).hide()" />
<p:commandButton value="Fechar" icon="ui-icon-close"
oncomplete="PF('dialogo').hide();" />
</h:panelGrid>
- Meu gerenteController
public void salvar() {
try {
GerenteDAO gerenteDAO = new GerenteDAO();
gerenteDAO.merge(gerente);
this.gerente = new Gerente();
this.listGerente = gerenteDAO.listar();
Messages.addGlobalInfo("Gerente " + this.gerente.getNome() + " Salvo com Sucesso!!!");
} catch (RuntimeException e) {
Messages.addGlobalError("Ocorreu ao salvar o Gerente " + e);
e.printStackTrace();
}
}