Pessoal, tenho uma tela com um botão que executa um metodo.
Acontece que na primeira vez que clico não executa o action ele atualiza a tela perde as informações ja informadas ai na segunda vez que clico chama o action certinho.
Ja coloquei o ajax=false e também tentei com o immediate=true mas continha não executando na primeira vez que clico.
Estou usando a ultima versao do PrimeFaces
Não sei mais o que tentar, por isso estou pedindo ajuda aqui… porque o problema persiste.
Obrigado.
<p:commandButton id="chave2"
value=“Filtrar"
action=”#{receitaBackTrans.processaReceita()}"
styleClass="inputsForms"
ajax=“false”>
</p:commandButton>
posta ai pra gente seu código e o xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="templateLayout.xhtml">
<ui:define name="content">
<h:head>
<title></title>
</h:head>
<h:body>
<f:view>
<link href="#{facesContext.externalContext.requestContextPath}/styles.css" rel="stylesheet" type="text/css"/>
<script language="JavaScript" src="javaScript.js" charset="utf-8"></script>
<meta name="robots" content="noindex,follow"/>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
<p:dialog modal="true" widgetVar="statusDialog" header="Carregando.."
draggable="false" closable="false">
<div align="center">
<p:graphicImage value="Imagens/Aguarde.gif" />
</div>
</p:dialog>
<br/><br/>
<h:form id="formReceitaTrans" >
<br/> <br/>
<div align="left">
<h:panelGrid id="panelGridReceita1" columns="1" width="auto">
<p:panel id="panelGridReceita2" header="" footer="" styleClass="inputsForms">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Receita - Filtro"></h:outputText>
</h:panelGroup>
</f:facet>
<h:form id="xxx">
<h:outputText id="xxx2" value="Data Inicial" styleClass="labelsForms"/> <br/>
<p:calendar id="dataInicial"
value="#{receitaBackTrans.dataInicial}"
immediate="true"
required="true"
requiredMessage="Informe a Data Inicial"
pattern="dd/MM/yyyy"
locale="pt_BR"
/>
<br/>
<h:outputText id="xxx5" value="Data Final" styleClass="labelsForms"/> <br/>
<p:calendar id="dataFinal"
value="#{receitaBackTrans.dataFinal}"
immediate="true"
required="true"
requiredMessage="Informe a Data Final"
pattern="dd/MM/yyyy"
locale="pt_BR"
/>
<br/>
<!--ORGAO-->
<h:outputText id="orgao2" value="Órgão" styleClass="labelsForms"/> <br/>
<h:selectOneMenu id="orgao1"
value="#{receitaBackTrans.codOrgao}"
rendered="true"
required="true"
requiredMessage="Informe o Órgão">
<f:selectItems value="#{orgaoBackTrans.nomesOrgaos}"/>
</h:selectOneMenu> <br/>
<h:message id="orgxxx" for="orgao1" styleClass="erroValidacao"/> <br/>
<p:commandButton id="chave2"
value="Filtrar"
action="#{receitaBackTrans.processaReceita()}"
styleClass="inputsForms"
ajax="false"
>
</p:commandButton>
</h:form>
</p:panel>
</h:panelGrid>
</div>
<br/>
<p:panel id="panelGridReceita" header="" footer="">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Receita"></h:outputText>
</h:panelGroup>
</f:facet>
<p:dataTable var="receita"
value="#{receitaBackTrans.receitaList}"
emptyMessage="Registros não carregados.">
<p:column headerText="Ficha">
<h:outputText value="#{receita.ficha}"/>
</p:column>
<p:column headerText="Órgão">
<h:outputText value="#{receita.orgao}" />
</p:column>
<p:column headerText="Categoria">
<h:outputText value="#{receita.categoria}" />
</p:column>
<p:column headerText="Valor">
<div align="right">
<h:outputText value="#{receita.valorLancado}" />
</div>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
</f:view>
</h:body>
</ui:define>
</ui:composition>
--------------------------------------------------------
public void processaReceita() throws Exception {
int codEnt = 1;
//pego o parametro do nome do arquivo
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
String dataIn = df.format(getDataInicial().getTime());
String dataFn = df.format(getDataFinal().getTime());
String sql =
"SELECT "
..........
if ((codOrgao != null) && (!codOrgao.equals("")) && (!codOrgao.equals("0"))) {
sql = sql
+ " AND PCREC_RECORGAO = " + codOrgao
+ " AND LREC_DATA BETWEEN '" + dataIn + "' AND '" + dataFn + "'";
} else {
sql = sql
+ " AND P.PCREC_IDENT IS NULL ";
}
if ((codCategoria != null) && (!codCategoria.equals("")) && (!codCategoria.equals("0"))) {
sql = sql
+ " AND P.PCREC_RECCATECONOMICA = " + codCategoria;
}
Connection conexao = ConnectionFactory.getConnection();
PreparedStatement stmt = conexao.prepareStatement(sql);
try {
this.receitaList = gerarLista(stmt);
} catch (Exception e) {
throw new Exception("Erro ao executar query. " + e.getMessage());
} finally {
ConnectionFactory.closeConnection(conexao, stmt);
}
}