Problema com popupPanel

2 respostas
rogerioag

Minha intenção é exibir uma mensagem para o usuário em um rich:popupPanel após inserir um registro no BD.

Com o código abaixo eu consigo fazer o desejado, só que com um problema. Só dá certo quando digito todos os campos da página corretamente. Se um dos campos não passa na validação, a mensagem de validação é exibida no h:messages só que a página não muda mais, mesmo se altero o conteúdo do campo e clico no botão novamente.

Outra coisa: ao exibir este popupPanel, ao clicar no botão OK gostaria que fosse redirecionado para a mesma página, com os campos em branco, mas isso não dá certo.

O que pode estar errado?

Estou usando Richfaces 4.2.2, MyFaces 2.1.8, Tomcat 7

pagina.xhtml

(...)
<a4j:outputPanel id="pnlMessages" ajaxRendered="true">
    <rich:messages id="messages" />
</a4j:outputPanel>

//
//campos com validação
//

<a4j:commandButton id="btnInserir" value="Inserir" oncomplete="#{rich:component('pnlOk')}.show()" render="pnlMessages outPnlOk" actionListener="#{meubeanMB.inserir}" />

<a4j:outputPanel id="outPnlOk">
       <rich:popupPanel id="pnlOk" rendered="#{meubeanMB.sucesso}" modal="true" height="150">
               <h:graphicImage value="/images/info.jpg" />
               <h:panelGrid columns="1">
                   <h:outputText id="textoModalOk" value="#{meubeanMB.textoModal}" />
                   <h:commandButton value="OK" action="pagina?faces-redirect=true"
                           onclick="#{rich:component('pnlOk')}.hide(); return false;" >
                       <a4j:ajax execute="formPnlOk" />
                   </h:commandButton>
               </h:panelGrid>
       </rich:popupPanel>
</a4j:outputPanel>

MeuBean

public void inserir(ActionEvent evt){
		try{
			(...) alimenta atributos obtidos do form
			gravaBD();
			setTextoModal("Registro inserido com sucesso");
			sucesso = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

2 Respostas

rogerioag

Alguma sugestão?

rogerioag

Alguém?

Criado 31 de julho de 2012
Ultima resposta 1 de ago. de 2012
Respostas 2
Participantes 1