Atualizar rich:dataTable após cadastro de dados

Pessoal, estou com problemas em atualizar um rich:dataTable, após cadastrar dados.

jsf

   
		<a4j:form id="formCadastro">
			<h:outputLabel for="nome" value="Nome" styleClass="inputForm"/>
			<h:inputText styleClass="inputForm" id="nome" value="#{bancoController.banco.nome}" required="true" requiredMessage="[Nome] Preenchimento obrigatório" maxlength="45"/> 
							
			<h:outputLabel for="site" value="Site" styleClass="inputForm"/>											
			<h:inputText styleClass="inputForm" id="site" value="#{bancoController.banco.site}" maxlength="80"/>			
		
			<a4j:commandButton value="Salvar" styleClass="inputBtn" actionListener="#{bancoController.listDataModelAll}" reRender="tabelaListagem"/>

		</a4j:form>
		

		<a4j:form id="formTabelaListagem">		
			<rich:dataTable id="tabelaListagem"  value="#{bancoController.model}" var="banco" >
				<rich:column>
					<f:facet name="header">		
							<rich:spacer/>
					</f:facet>
					<h:selectBooleanCheckbox value="#{checkBoxController.selected}" />
				</rich:column>
				<rich:column sortBy="#{banco.id}">
					<f:facet name="header">		
							<h:outputText value="Código" />
					</f:facet>
					<h:outputText value="#{banco.id}" />
				</rich:column>
				<rich:column sortBy="#{banco.nome}">
					<f:facet name="header">		
							<h:outputText value="Nome" />
					</f:facet>
					<h:outputText value="#{banco.nome}" />
				</rich:column>
				<rich:column sortBy="#{banco.site}">
					<f:facet name="header">		
							<h:outputText value="Site" />
					</f:facet>
					<h:outputText value="#{banco.site}" />
				</rich:column>
				<rich:column>
					<f:facet name="header">		
							<h:outputText value="Ação" />
					</f:facet>
					<a4j:commandLink>
						<h:graphicImage alt="Editar" url="img/icon/pencil.png" />
					</a4j:commandLink>
					<a4j:commandLink>
						<h:graphicImage alt="Remover" url="img/icon/delete.png" />
					</a4j:commandLink>
				</rich:column>				
			</rich:dataTable>
  </a4j:form>

Ex: quando esta página é carregada, o rich:dataTable é preenchido com dados dos bancos, porém quando cadastrar outro banco, clicando em ‘salvar’, o rich:dataTable deveria ser atualizado com o novo registro.

Algém sabe o que fazer?

Obrigado!

tenta dar um re-render no form hehe

Se o reRender não funcionar tente debugar o seu bean para ver se a lista que preenche o datatable está com a posição nova.
Abraço.

fsilvermail, primeiro Bem vindo ao Forum.
Bom há necessidade de usar dois forms. Voce pode dexar o form para os inputs e tambem para o dataTable.
Se erro continuar, post o metodo de inserção do seu bean.

[ ]s,

Pessoal, so para corrigir:

No formCadastro

Substitui este:
<a4j:commandButton value=“Salvar” styleClass=“inputBtn” actionListener="#{bancoController.[color=green]listDataModelAll[/color]}" reRender=“tabelaListagem”/>

Por este:
<a4j:commandButton value=“Salvar” styleClass=“inputBtn” actionListener="#{bancoController.[color=red]inserir[/color]}" reRender=“tabelaListagem”/>

Agora sim, continuando o tópico.

Se for desta forma: reRender=“formTabelaListagem”

não funcionou!

Este link é responável por abrir a página que contém o formCadastro e o formTabelaListagem:

<a4j:commandLink actionListener="#{bancoController.listDataModelAll}" value="Bancos" reRender="pages" > <a4j:actionparam assignTo="#{navegacao.url}" value="pages/cadastros/bancos.jsp" /> </a4j:commandLink>

Quando a página é carregada, o rich:dataTable já está listando os dados do banco, pois o método listDataModelAll efetuou a consulta no banco e criou uma instância de model.

[code]public void listDataModelAll(ActionEvent event) {
try {

    model = bancoDAO.listDataModelAll();

} catch (ExceptionDAO e) {

    Util.sendMsg("formListBanco", e.getMessage(), FacesMessage.SEVERITY_ERROR);

}

}[/code]

Uma coisa que notei, foi que, quando clico que salvar, o rich:dataTable atualiza, porém não lista o novo registro cadastrado no banco, pois a instância de bancoController.model na sessão não foi atualizada.

Pois a forma de autalizar a instância de model, é chamar o método listDataModelAll.

No momento que clico em salvar, tem como chamar o método listDataModelAll novamente, alem do inserir?

Existe outra forma além do reRender?

Att.

mateusprado, obrigado!

Segue o método de inserção, lembrando que a inserção está funcionando corretamente!

[code]public void inserir(ActionEvent event) {
try {

    usuarioController = (UsuarioController) Util.getMBeanSession("usuarioController");

    banco.setUsuario(usuarioController.getUsuario());

    bancoDAO.save(banco);

} catch (ExceptionDAO e) {

    Util.sendMsg("formCadBanco", e.getMessage(), FacesMessage.SEVERITY_ERROR);

}

}[/code]

Att,

ueh, nao eh soh colocar o listdatamodel depois do save?

Valeu dohko, era isso mesmo!