Problema com PrimeFaces

5 respostas
A

Pessoal meu problema é o seguinte tenho um selectOneMenu e um métodfo disparado quando seu valor é alterado. Até ai tudo bem. A questão é que gostaria de na mesma página exibir o resultado de uma consulta feita nesse método. segue abaixo o formulário que estou usando.

<h:form>
<h:panelGroup id="info" rendered="#{not contas.resultado}">
<h:panelGroup>
<b><h:outputLabel value="Compras" for="compras"></h:outputLabel> </b>
</h:panelGroup>

<h:selectOneMenu value="#{contas.idContrato}" id="contratos">
<f:selectItems value="#{contas.contratos}"></f:selectItems>
<p:ajax update="resultado info" listener="#{contas.handleContratosChange}" />
</h:selectOneMenu>


</h:panelGroup>
</h:form>
<h:panelGroup id="resultado" rendered="#{contas.resultado}">
	Resultado
</h:panelGroup>

Desde já, grato a todos.

5 Respostas

leorbarbosa

alysson,

uma das formas de se redirecionar a consulta à mesma página, é mapeando sua aplicação no faces-config.xml. Estou usando esta forma em meus sistemas. Por exemplo:

<navigation-rule> 
    <navigation-case> 
      <from-outcome>sayHello</from-outcome> 
      <to-view-id>/hello.jsp</to-view-id> 
    </navigation-case> 
  </navigation-rule>

Neste exemplo, estou considerando que sua tela de consulta seja hello.jsp, aonde os resultados também serão mostrados. De resto, seguem os padrões de criação de beans (modelo) e managedbeans (aonde poderá ter métodos de consulta , etc…)

Att,

Henrique_Jonas

allyson,

Neste caso caso você queira exibir o resultado na mesma página, acho q é necessário somente realizar a consulta, preencher uma variável e atualizar com o atributo update o form ou o componente em que contém o resultado. E na página relacionar essa variável do ManagedBean com algum componente seja ele um dataTable, dataGrid ou um AccordionPanel.

A

leorbarbosa eu já havia definido a navigation-rule, a plicação está rodando normal, o problema é que o panelGroup não é rederizado, se eu não utilizar ajax tudo bem, mas meu problema é quando utilizo o <p:ajax update="compras" listener="#{contas.handleComprasChange}" />
Nesse caso o handleComprasChange é executado normalmente o problema é que o <h:panelGroup id="compras" rendered="#{contas.resultadoCompras}"> asuidyh ioausydio asy dioasyd </h:panelGroup> não é rederizado.

A

Henrique Jonas ,
tentei usar um dataGrid e não tive sucesso, com dataTable não é possível representar a saída que desejo. o ideal mesmo seria poder renderizar o meu panelGroup.

grato, Alysson Lemos

Henrique_Jonas

Alysson,

Como está a declaração do seu <h:form>? Se está com o atributo prependId=“false” logo no update do p:ajax é só colocar o id do campo, agora se este atributo não está definido é necessário colocar o id_do_form:id_do_componente no atributo update do p:ajax.

Caso isto ainda não funcione tente colocar no atributo update o seguinte: @form.

Criado 1 de junho de 2011
Ultima resposta 5 de jun. de 2011
Respostas 5
Participantes 3