Em uma página eu tenho um componente <p:wizard>(que fica dentro de um <h:form>) e dentro de umas das <p:tab> do <p:wizard>
eu coloquei um <p:commandButton>. Eu quero fazer uma validação para so ir para outra página quando o Array de documentos não for vazio.(Até aqui ok).
So que como meu <p:commandButton> e o botão next do <p:wizard> estão no mesmo form quando eu clico no meu <p:commandButton>(botão responsavel por adicionar itens ao Array)
ele já faz a validação, ai no caso o array ainda está vazio.
O que eu quero é que ao cliclar no <p:commandButton> não seja realizado a validação.
Exatamente como todo mundo pensou agora, é so colocar immediate=“true” no <p:commandButton> mas quando eu faço isso os valores dos meus <h:inputText> não são pegos
e desta forma são jogados valores nulos pro Array.
Outra solução seria colocar o <p:commandButton> em outro form so que ai ficaria um form dentro de outro, isso é possível?
de toda forma eu ja tentei e não funcionou.
Então minha duvida é: Como eu posso ter dois botões num mesmo form um(no caso o botão do wizard ) fazer a validação e o outro não.
<p:tab id="documentoss" title="Itens Furtados">
<p:panel header="Selecione os Itens Furtados ">
<table cellspacing="10px">
<tr>
<td><h:outputText value="Numero:" /></td>
<td><h:inputText value="#{documentoMB.ccNumero}" /></td>
<td><h:outputText value="Bandeira:" /></td>
<td><h:inputText value="#{documentoMB.ccBandeira}" /></td>
</tr>
<td><p:commandButton value="Add" update="documentos msgs @parent"
action="#{documentoMB.reinit}" >
<p:collector value="#{documentoMB.documento}"
addTo="#{documentoMB.documentos}" />
</p:commandButton></td>
</tr>
</table>
</p:panel>
<p:outputPanel id="documentos" >
<p:dataTable value="#{documentoMB.documentos}" var="documento" >
<p:column>
<f:facet name="header">
<h:outputText value="Item" />
</f:facet>
<h:outputText value="#{documento.descricao_material}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Remover" />
</f:facet>
<p:commandLink update="form:documentos"
process="@this" immediate="true">
<p:graphicImage url="/images/excluir.gif"/>
<p:collector value="#{documento}"
removeFrom="#{documentoMB.documentos}" />
</p:commandLink>
</p:column>
</p:dataTable>
</p:outputPanel>
</p:tab>
public String reinit(){
if(documentoSelecionado.equals("CC")){
documento.setDescricao_material("Cartão de Credito | Número:" + ccNumero + " | Bandeira:" + ccBandeira);
setCcNumero("");
setCcBandeira("");
}
if(documentoSelecionado.equals("CPF")){
documento.setDescricao_material("CPF | Número:" + cpfNumero);
setCpfNumero("");
}
documento = new Documento();
return null;
}
Coloquei o Codigo resumido devido ao tamanho.
Agradeço qualquer ajuda.
