Fórum Vários submits no formulário utilizando o componente p:dataTable ! #413598
01/03/2012
0
Estou tendo o seguinte problema:
Ao utilizar o componente p:dataTable em minha tela e ao selecionar uma linha utilizando o componente p:commandLink, a aplicação realiza vários submits no meu formulário
atrapalhando a performace da minha aplicação.
Segue o código:
Tela onde se encontra o p:dataTable:
<ui:composition xmlns=http://www.w3.org/1999/xhtml
xmlns:h=http://java.sun.com/jsf/html
xmlns:f=http://java.sun.com/jsf/core
xmlns:ui=http://java.sun.com/jsf/facelets
xmlns:p=http://primefaces.prime.com.tr/ui
template=/template/iframe.xhtml>
<ui:define name=titulo>
</ui:define>
<ui:define name=conteudo>
<h:form prependId=false>
<script type=text/javascript>
jQuery(document).ready(function(){
jQuery(#valorParcela).priceFormat({
prefix: ,
centsSeparator: ,,
thousandsSeparator: .
});
jQuery(#valorContrato).priceFormat({
prefix: ,
centsSeparator: ,,
thousandsSeparator: .
});
});
</script>
...
<p:dataTable id=listagem styleClass=table emptyMessage=Nenhum banco encontrado
value=#{contratoController.todosParceiro} var=item>
<p:column>
<f:facet name=header>
<h:outputText value=ID />
</f:facet>
<h:outputText value=#{item.idParceiro} />
</p:column>
<p:column>
<f:facet name=header>
<h:outputText value=CNPJ />
</f:facet>
<h:outputText value=#{item.cnpj} />
</p:column>
<p:column>
<f:facet name=header>
<h:outputText value=Nome />
</f:facet>
<h:outputText value=#{item.nomeParceiro} />
</p:column>
<p:column>
<p:commandLink ajax=false value=selecionar action=#{contratoController.parceiroChange} >
<f:setPropertyActionListener target=#{contratoController.parceiro} value=#/>
</p:commandLink>
</p:column>
</p:dataTable>
<table class=table-form width=100%>
<tfoot>
<tr><td><p:messages id=msgs showDetail=true/></td></tr>
<tr>
<td>
<p:commandButton image=ui-icon-arrowthick-1-w value=Voltar ajax=false action=/pages/operacional/propostas/formCliente.xhtml>
</p:commandButton>
</td>
</tr>
</tfoot>
</table>
</h:form>
</ui:define>
</ui:composition>
Método chamado várias vezes no submit:
public DataModel getTodosParceiro() {
setModelParceiro(new ListDataModel(CODIGO SQL));
return getModelParceiro();
}
Método que deveria ser chamado assim que a ação onclick do botão selecionar fosse executada. E neste caso so é chamado após o método anterior ser executado várias vezes.
public List<Produto> getTodosProduto() {
if (parceiro != null) {
...
}
return produtoLista;
}
Alguém já passou por esse tipo de problema?
Versão primefaces: 2.2.1;
OBS.: O fato da listagem ser feita pela classe DataModel não é o problema já verifiquei.
Grato a todos pela atenção.
Att,
Cláudio E Costa
Enio Nunes
Curtir tópico
+ 0Posts
01/03/2012
Davi Costa
att Davi
Gostei + 0
01/03/2012
Enio Nunes
Sei que o componente p:commandLink aciona um evento de ação que pertence a fase invocar aplicação.
O que não consigo entender é o porque de tantas requisições que são feitas ao acionar o evento.
Teria alguma forma de contornar isso?
Gostei + 0
01/03/2012
Davi Costa
att Davi
Gostei + 0
01/03/2012
Enio Nunes
Vlws ahi pelas dicas!
Gostei + 0
01/03/2012
Davi Costa
att Davi
Gostei + 0
03/03/2012
Dyego Carmo
Funcionou ?
Poderia fechar o chamado ? :D
Valeu !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)