Update do commandButton não funciona! - JSF + Primefaces

Salve galera!
Sou novato ainda aqui no GUJ, e ainda por cima lidando com um TCC. Péssima combinação =/
Meu trabalho é feito em JSF, Hibernate e PrimeFaces.
Recentemente tenho enfrentado um problema com o “update” de um <p:commandButton>.

É o seguinte:
tenho um formulário básico:

<h:form id="formulario">
                        <h:panelGrid columns="3">
                            <p:outputLabel value="Nome: " />
                            <p:inputText id="txtNomeInst" 
                                         required="true" 
                                         value="#{instituicaoMB.nomeInstituicao}"
                                         label="Nome da Instituição" 
                                         styleClass="input-big"/>

                            <p:message for="txtNomeInst" />

                            <p:outputLabel value="Diretor(a): " />
                            <p:inputText id="txtDiretorInst" 
                                         required="false" 
                                         value="#{instituicaoMB.diretorInstituicao}" /> <br />

                            <p:outputLabel value="Endereço: " />
                            <p:inputText id="txtEnderecoInst" 
                                         required="true" 
                                         value="#{instituicaoMB.enderecoInstituicao}" 
                                         label="Endereço da Instituição"/> 
                            <p:message for="txtEnderecoInst" />

                            <p:outputLabel value="Telefone: " />
                            <p:inputMask id="txtTelefoneInst" 
                                         required="false" 
                                         mask="(99) 9999-9999" 
                                         value="#{instituicaoMB.telefoneInstituicao}"/> <br />

                            <p:commandButton value="Salvar"
                                             action="#{instituicaoMB.salvarInstituicao(instituicaoMB)}"
                                             styleClass="btn-default" 
                                             icon="ui-icon-disk"
                                             update="formulario">   
                            </p:commandButton>
                            <p:commandButton value="Limpar" 
                                             type="reset" 
                                             icon="ui-icon-close" />
                        </h:panelGrid>
                    </h:form>

Bem básico, mas já é o suficiente para mostrar meu problema.
No commandButton que salva os dados (“Salvar”), eu digo que após ele salvar os dados, ele deveria dar um update no formulário, apenas para deixá-lo em branco (update=“formulario”).
Porém, ele não atualiza! Eu clico em “Salvar”, ele salva os dados para mim, mas não atualiza o formulário, ficando lá o que digitei.

Já tentei até desse jeito, e também não deu certo:

<p:ajax update="formulario">

Não vou me aprofundar no assunto, mas li a respeito dos NamingContainers, e que talvez eu deveria colocar “:” antes do id que quero atualizar (quem já é mais avançado em Web sabe do que estou falando), mas também não resolveu.

Galera, podem me ajudar? Estou muito preocupado, por se tratar do meu TCC =/

Valeu galera, de coração.

[]'s

Cara você pode simplesmente no final do método salvar dar um new Bean() atualizando seu formulario, porém no seu botão a action coloquei apenas o manageBean.metodo

<p:commandButton value="Salvar"  
                                             action="#{instituicaoMB.salvarInstituicao}"  
                                             styleClass="btn-default"   
                                             icon="ui-icon-disk"  
                                             update="formulario">

Oi amigo,

Em relação ao “:” você está certo em não colocar, pois o “:” , é usado no caso de você querer dar um update em um componente fora do form que não ´o caso.

Agora o que vc tem que fazer para limpar os dados depois do update é simples: No método salvarInstituicao() é só você intanciar novamente as variavéis que estão setadas no inputText, sendo assim quando o botão der o update do formulario os valores estarão vazios e e com isso não virão preenchidos .

Exemplo:

public void salvarInstituicao(){

this.nomeInstituicao = " ";

...

ou instância novamente os objetos desses atributos.

Tenta-la e vê se deu certo .

Um abraço

E se no método de salvar você atribuísse null ao objeto após salvar? Talvez se você postasse o seu managed bean ficaria melhor.
P.S.: também estou na mesma situação que a sua. Estou desenvolvendo meu projeto de TCC em Java Web e estou tendo bastante dificuldade.

Olá amigo, essa é fácil. Faça o seguinte;

  1. Tente utilizar o panelGrid do primefaces blza?
  2. No seu commandbutton vc colocaria o update com esse valor “:formulario:idDoPanelGrid”
  3. No seu método de cadastrar coloque para ele estar instanciando um novo objeto do form, no seu caso a instituicao.
  4. Tente utilizar o @ViewScoped caso não o utilize em seus managed beans.

Aproveitando o espaço, se alguém puder me ajudar: http://www.guj.com.br/java/295471-could-not-initialize-proxy---no-session

:slight_smile: