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>
<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>