Problema com validação rich:ajaxValidator JSF

Bom dia a todos.
Coloquei no meu formulário uma validação ajax. Percebi que quando dou submit na página mostrará uma mensagem de validação. Andei pesquisando, que para burlar a validação de um submit eu coloco no link ou no botao a propriedade “immediate = true”.Resolvi metade dos meus problemas.
Estou fazendo uma aplicação num página só. ou seja, listar, deletar e alterar é tudo na mesma jsp. No link alterar coloquei um rerender para o panelgrid de cadastro, pra quando ele clicar la os campos serão preenchidos. Não dará submit na página no caso.
Mesmo assim quando eu clico nele, pede o campo obrigatório que eu pus no formulário. Então usei o “immediate = true”. Mas quando eu clico nele preenche apenas o id o resto fica em branco. Notei que quando dou um refresh na oágina preenche os campos que estavam faltando.
Como resolvo isso?

<h:form id="cadastro">
                   
                    <h:panelGrid rowClasses="linhasCad" id="painelCadastro" styleClass="tabelaCad" headerClass="cabecalhoCad" border="0" columns="3">
                        <f:facet name="header">
                            <h:outputText value="Pessoa"/>
                        </f:facet>
                        <h:outputText value="Identificador:"/>
                        <h:inputText id="identificador" value="#{PessoaView.pes.identificador}" readonly="true"/>
                        <h:message for="identificador"/>
                        <h:outputText value="RG:"/>
                        <h:inputText id="rg" value="#{PessoaView.pes.rg}" required="true" requiredMessage="RG é obrigatório!">
                            <rich:ajaxValidator event="onblur"/>
                        </h:inputText>
                        <rich:message for="rg"/>
                        <h:outputText value="Município:"/>
                        <h:inputText id="municipio" value="#{PessoaView.pes.municipio}"/>
                        <h:message for="municipio"/>
                        <h:outputText value="Órgão Expeditor:"/>
                        <h:inputText id="rgorgaoexp" value="#{PessoaView.pes.rgorgaoexp}"/>
                        <h:message for="rgorgaoexp"/>
                        <h:outputText value="Data Emissão RG:"/>
                        <h:inputText id="rgemissao" value="#{PessoaView.pes.rgemissao}"/>
                        <h:message for="rgemissao"/>
                        <h:outputText value="CPF:"/>
                        <h:inputText id="cpf" value="#{PessoaView.pes.cpf}"/>
                        <h:message for="cpf"/>
                        <h:outputText value="Sexo:"/>
                        <h:inputText maxlength="1" id="sexo" value="#{PessoaView.pes.sexo}"/>
                        <h:message for="sexo"/>
                        <h:outputText value="Título Eleitoral:"/>
                        <h:inputText id="titeleitoral" value="#{PessoaView.pes.titeleitoral}"/>
                        <h:message for="titeleitoral"/>
                        <h:outputText value="Email:"/>
                        <h:inputText id="email" value="#{PessoaView.pes.email}"/>
                        <h:message for="email"/>
                        <h:outputText value="Endereço:"/>
                        <h:inputText id="endereco" value="#{PessoaView.pes.endereco}"/>
                        <h:message for="endereco"/>
                   
                   
                   
                    </h:panelGrid>
                    <br />
                    <h:panelGrid columns="5" styleClass="tabelaBot" id="grid">
                        <a4j:commandButton value="Cadastrar" id="botCadastrar" rendered="#{PessoaView.botCad}" styleClass="botao" reRender="painel" action="#{PessoaView.create}"/>
                        <a4j:commandButton value="Alterar" id="botAlterar" rendered="#{PessoaView.botAlt}" styleClass="botao" reRender="painel" action="#{PessoaView.update}"/>
                        <a4j:commandButton value="Listar" immediate="true" reRender="painel" styleClass="botao" action="#{PessoaView.mudaListar}" />
                        <a4j:commandButton value="Limpar" styleClass="botao" reRender="painelCadastro, grid" action="#{PessoaView.limpa}"/>
                   
                    </h:panelGrid>
                                       
                    <br />
                       
                    <br />
           
                    <rich:panel id="painel">
                   
                    <rich:dataTable id="listaCliente" rowClasses="linha_a, linha_b" styleClass="tabela" headerClass="cabecalho"  value="#{PessoaView.allPessoas}" var="item"
                     rendered="#{PessoaView.listar}" cellpadding="2" cellspacing="0">
                        <f:facet name="header">
                            <h:outputText value="Pessoas Cadastradas"/>
                        </f:facet>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="RG"/>
                            </f:facet>
                            <h:outputText value="#{item.rg}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="Municipio"/>
                            </f:facet>
                            <h:outputText value="#{item.municipio}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="CPF"/>
                            </f:facet>
                            <h:outputText value="#{item.cpf}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="Sexo"/>
                            </f:facet>
                            <h:outputText value="#{item.sexo}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="E-Mail"/>
                            </f:facet>
                            <h:outputText value="#{item.email}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="Operação"/>
                            </f:facet>
                           
                            <a4j:commandLink immediate="true" reRender="grid, painelCadastro" action="#{PessoaView.testaBotao}">
                                <h:graphicImage styleClass="link" url="imagens/rtg_rate.gif" title="Alterar"/>
                                <f:setPropertyActionListener value="#{item}" target="#{PessoaView.pes}"/>
                            </a4j:commandLink>
                            &nbsp;&nbsp;
                            <a4j:commandLink immediate="true" reRender="painel" action="#{PessoaView.delete}">
                                <h:graphicImage styleClass="link" url="imagens/bRmv.gif" title="Apagar"/>
                                <f:setPropertyActionListener value="#{item.identificador}" target="#{PessoaView.identificador}"/>
                            </a4j:commandLink>
                       
                        </rich:column>
           
                    </rich:dataTable>
                    </rich:panel>
                   
           
                </h:form>

Amigo,

Estou com o problema identico ao seu e não consegui solução em lugar nenhum!
Como você resolveu o problema?
Obrigado!

[quote=vilmar_ferreira]Bom dia a todos.
Coloquei no meu formulário uma validação ajax. Percebi que quando dou submit na página mostrará uma mensagem de validação. Andei pesquisando, que para burlar a validação de um submit eu coloco no link ou no botao a propriedade “immediate = true”.Resolvi metade dos meus problemas.
Estou fazendo uma aplicação num página só. ou seja, listar, deletar e alterar é tudo na mesma jsp. No link alterar coloquei um rerender para o panelgrid de cadastro, pra quando ele clicar la os campos serão preenchidos. Não dará submit na página no caso.
Mesmo assim quando eu clico nele, pede o campo obrigatório que eu pus no formulário. Então usei o “immediate = true”. Mas quando eu clico nele preenche apenas o id o resto fica em branco. Notei que quando dou um refresh na oágina preenche os campos que estavam faltando.
Como resolvo isso?

[code]
<h:form id=“cadastro”>

                <h:panelGrid rowClasses="linhasCad" id="painelCadastro" styleClass="tabelaCad" headerClass="cabecalhoCad" border="0" columns="3">
                    <f:facet name="header">
                        <h:outputText value="Pessoa"/>
                    </f:facet>
                    <h:outputText value="Identificador:"/>
                    <h:inputText id="identificador" value="#{PessoaView.pes.identificador}" readonly="true"/>
                    <h:message for="identificador"/>
                    <h:outputText value="RG:"/>
                    <h:inputText id="rg" value="#{PessoaView.pes.rg}" required="true" requiredMessage="RG é obrigatório!">
                        <rich:ajaxValidator event="onblur"/>
                    </h:inputText>
                    <rich:message for="rg"/>
                    <h:outputText value="Município:"/>
                    <h:inputText id="municipio" value="#{PessoaView.pes.municipio}"/>
                    <h:message for="municipio"/>
                    <h:outputText value="Órgão Expeditor:"/>
                    <h:inputText id="rgorgaoexp" value="#{PessoaView.pes.rgorgaoexp}"/>
                    <h:message for="rgorgaoexp"/>
                    <h:outputText value="Data Emissão RG:"/>
                    <h:inputText id="rgemissao" value="#{PessoaView.pes.rgemissao}"/>
                    <h:message for="rgemissao"/>
                    <h:outputText value="CPF:"/>
                    <h:inputText id="cpf" value="#{PessoaView.pes.cpf}"/>
                    <h:message for="cpf"/>
                    <h:outputText value="Sexo:"/>
                    <h:inputText maxlength="1" id="sexo" value="#{PessoaView.pes.sexo}"/>
                    <h:message for="sexo"/>
                    <h:outputText value="Título Eleitoral:"/>
                    <h:inputText id="titeleitoral" value="#{PessoaView.pes.titeleitoral}"/>
                    <h:message for="titeleitoral"/>
                    <h:outputText value="Email:"/>
                    <h:inputText id="email" value="#{PessoaView.pes.email}"/>
                    <h:message for="email"/>
                    <h:outputText value="Endereço:"/>
                    <h:inputText id="endereco" value="#{PessoaView.pes.endereco}"/>
                    <h:message for="endereco"/>
               
               
               
                </h:panelGrid>
                <br />
                <h:panelGrid columns="5" styleClass="tabelaBot" id="grid">
                    <a4j:commandButton value="Cadastrar" id="botCadastrar" rendered="#{PessoaView.botCad}" styleClass="botao" reRender="painel" action="#{PessoaView.create}"/>
                    <a4j:commandButton value="Alterar" id="botAlterar" rendered="#{PessoaView.botAlt}" styleClass="botao" reRender="painel" action="#{PessoaView.update}"/>
                    <a4j:commandButton value="Listar" immediate="true" reRender="painel" styleClass="botao" action="#{PessoaView.mudaListar}" />
                    <a4j:commandButton value="Limpar" styleClass="botao" reRender="painelCadastro, grid" action="#{PessoaView.limpa}"/>
               
                </h:panelGrid>
                                   
                <br />
                   
                <br />
       
                <rich:panel id="painel">
               
                <rich:dataTable id="listaCliente" rowClasses="linha_a, linha_b" styleClass="tabela" headerClass="cabecalho"  value="#{PessoaView.allPessoas}" var="item"
                 rendered="#{PessoaView.listar}" cellpadding="2" cellspacing="0">
                    <f:facet name="header">
                        <h:outputText value="Pessoas Cadastradas"/>
                    </f:facet>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="RG"/>
                        </f:facet>
                        <h:outputText value="#{item.rg}"/>
                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="Municipio"/>
                        </f:facet>
                        <h:outputText value="#{item.municipio}"/>
                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="CPF"/>
                        </f:facet>
                        <h:outputText value="#{item.cpf}"/>
                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="Sexo"/>
                        </f:facet>
                        <h:outputText value="#{item.sexo}"/>
                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="E-Mail"/>
                        </f:facet>
                        <h:outputText value="#{item.email}"/>
                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="Operação"/>
                        </f:facet>
                       
                        <a4j:commandLink immediate="true" reRender="grid, painelCadastro" action="#{PessoaView.testaBotao}">
                            <h:graphicImage styleClass="link" url="imagens/rtg_rate.gif" title="Alterar"/>
                            <f:setPropertyActionListener value="#{item}" target="#{PessoaView.pes}"/>
                        </a4j:commandLink>
                        &nbsp;&nbsp;
                        <a4j:commandLink immediate="true" reRender="painel" action="#{PessoaView.delete}">
                            <h:graphicImage styleClass="link" url="imagens/bRmv.gif" title="Apagar"/>
                            <f:setPropertyActionListener value="#{item.identificador}" target="#{PessoaView.identificador}"/>
                        </a4j:commandLink>
                   
                    </rich:column>
       
                </rich:dataTable>
                </rich:panel>
               
       
            </h:form>

[/code][/quote]

Resolvi colocando no link a4j:commandlink o atributo ajaxSigle=true;
resolve o problema
flww