Olá,
O meu problema é o seguinte:
Eu tenho campos nbo form que quando preencho e clico em salvar, salva no banco de dados e renderiza a tabela na mesma página.
O problema que estou enfrentando é que ele renderiza a tabela antes de salvar no banco, então a tabela fica defasada da última inserção. Se insiro outro registro, o anterior aparece, sempre com o atraso da última inserção (só a última não aparece).
Minha tela:
<f:view>
<h:form>
<h:outputText value="Nome: "/>
<h:inputText value="#{ProfessorMB.professor.nome}"/> <br/>
<h:outputText value="Login: "/>
<h:inputText value="#{ProfessorMB.professor.login}"/> <br/>
<h:outputText value="Senha: "/>
<h:inputText value="#{ProfessorMB.professor.senha}"/> <br/>
<h:outputText value="E-Mail: "/>
<h:inputText value="#{ProfessorMB.professor.email}"/> <br/>
<h:commandButton value="Inserir" action="#{ProfessorMB.inserir}">
<f:ajax execute="@form" render="prof"/>
</h:commandButton>
<h:dataTable id="prof"
.......
Meu Bean:
public void listar(){
ProfessorDAO profDAO = new ProfessorDAO();
setProfessores(profDAO.consultarLista());
}
public String inserir(){
ProfessorDAO profDAO = new ProfessorDAO();
if(profDAO.salvar(getProfessor()))
return "true";
listar();
return "false";
}
Não tem regras de navegação no faces-config.
Agradeço desde já!
EDIT: Desculpem-me, foi um errto infantil no Bean, ele dava o return antes do método listar();