Executar Metodo ao chamar Dialog no primefaces

Ola tudo bem?

Estou com a seguinte duvida, eu tenho um DataTable no qual eu listo os Pedidos, eu preciso chamar um Dialog com os itens conforme eu clico em cima do pedido,

Alguém sabe me dizer como eu poderia fazer isso?

Desde já Obrigada!

Você tem o actionListener que irá chamar o método. Os componentes p:commandButton e p:commandLink possuem o evento oncomplete que permite chamar o dialog somente quando a requisição ajax tiver sido concluída.

Mas como eu faço para passar o parâmetro para a busca dos itens, por exemplo eu preciso passar o código do pedido para ele buscar os itens…

Você provavelmente está utilizando uma p:dataTable onde o value é uma Collection (provavelmente, também, uma List).
Sugiro trocar esta abordagem e incluir, no ManagedBean, um objeto do tipo DataModel (onde E deve ser substituído pela classe que representa os objetos que quer listar na tabela).
Com o DataTable, você faz com que a tabela assuma que cada linha tem seu próprio identificador.
Se pesquisar no google ou mesmo no guj vai encontrar muitos exemplos disso.

cara nao sei se é isso que vc quer.
tenho uma view por exemplo cadastro de notasDeAluno por exemplo
o codigo abaixo faz parte de uma tabela que lista as turmas. entao o professor seleciona a turma que ele quer e aparece um p:dialog com os alunos daquela turma que ele selecionou. entendeu? acho q serve como exemplo pra o q vc quer

    <p:column >  
                                    <f:facet name="header">  
                                        <h:outputText value="Selecionar" />  
                                    </f:facet>  

                                    <p:commandLink update=":formDlgA" onclick="
                                        <f:setPropertyActionListener value="#{tdp}" target="#{pedidoControle.pedido}"/>                                        
                                    </p:commandLink>
                                </p:column>

na tabela do dialog vc faz um consulta pegando os itens que tenhão o Id do Pedido, joga na lista e carrega a table. ok?
acho q he isso

isso mesmo jonathaslf, vou fazer o teste aqui, mas tarde posto o resultado.

Vlw drsmachado e jonathaslf

ok. post mesmo!

certo meninos, acho que estou fazendo caca e confusão, desculpa a falta de conhecimento primeiramente, mas continuei fazendo da seguinte maneira

MEU XHTML

<p:dataTable var="listarPedidos" value="#{pedidoBean.listaNfePendentes}" rowKey="#{listarPedidos.numDoc}" paginator="true" style="font-size: 11px" id="listarPedidos"     rows="10" selection="#{pedidoBean.selectedPedido}" selectionMode="single" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} 
{NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  rowsPerPageTemplate="5,10,15,20"  widgetVar="cmv"   emptyMessage="Não foram encontrados dados com esse critério">                                       


<p:ajax event="rowSelect" listener="#{pedidoBean.onRowSelect}" onstart="#{pedidoBean.gerarlistarPedidoItens()}"   
      update=":formped:display :formped:messages" oncomplete="ItensDialog.show()" />  
 
<p:ajax event="rowUnselect" listener="#{pedidoBean.onRowUnselect}" update=":formped:messages"/> 
public List<PedidoItens> gerarlistarPedidoItens() {
        pedidoController = new PedidoController();
        this.listarPedidoItens=(pedidoController.listarPedidoItens(????));
        return listarPedidoItens;        
    }

eu consigo de alguma forma no meu Bean recuperar esse CodigoDoPedido para passar o parametro para o metodo ListarPeidoItens?

vamos la, na sua tabela deve ter um coluna com um command button certo? nessa coluna do botao vc vai pegar a variavel que vc setou la na datatable no seu caso (var=“listarPedidos”).
vou explicar minha table.
-o ‘var’ é objeto que vc vai usar para listar, ou seja receber o valor da lista do value.
-value está retornando uma lista para para minha table (value="#{vendaController.consultaVendasEmAberto()}")
-ok, o negocio agora esta no commandbutton no qual tera um <f:setPropertyActionListener> que sera responsavel de pegar o valor(que é o valor listarPedidos ) e passar para o objeto alvo que o

                  <p:dataTable id="tabelaPedidos" var="listarPedidos" value="#{vendaController.consultaVendasEmAberto()}" style="font-size:small;"  
                             emptyMessage="Nenhum Produto cadastrado"
                             paginator="true" rows="6">                                      
                    <p:column  >  
                        <f:facet name="header">  
                            <h:outputText value="Num. Pedido" />  
                        </f:facet>  
                        <h:outputText value="#{listarPedidos.numeroPedido}" />  
                    </p:column> 
                    <p:column  >  
                        <f:facet name="header">  
                            <h:outputText value="Status" />  
                        </f:facet>  
                        <h:outputText value="#{listarPedidos.status}" />  
                    </p:column> 

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Selecionar" />  
                        </f:facet>
                        <center>
                            <p:commandButton icon="ui-icon-check" action="#{itemVendaController.consultarPedidosByNumero()}" update=":formListaPedidoFechado"     onclick="consultarPedidoFechado.hide();" style="font-size: smaller;">
                                <f:setPropertyActionListener value="#{listarPedidos}" target="#{itemVendaController.pedido}" />
                                
                            </p:commandButton>    
                        </center>
                    </p:column>  

                </p:dataTable>

aqui o metodo.
observe que o f:setPropertyActionListener setou o obj da variavel no obj do seu pedidoBean, ai agora com ele setado vc faz a consulta pedido.getNumePedido

public List<ItemPedido> consultarPedidosByNumero() {
                    return listItens = itemPedidoDAO.consultarItemPedido(pedido.getIdVenda());
        
    }

Olá, eu consigo chamar, porém ele não atualiza o meu dialog, por exemplo eu clico no pedido 320, ele vai chamar método, vai trazer todos os dados dos itens referente a este pedido, hora que eu fecho meu dialog, e clico para mostra outro pedido ele não chama mais o método e sempre me mostra os dados do pedido 320, segue meu código, ele deveria chamar o método novamente e trazer as informações do novo pedido selecionado. Eu nao conheco quase nada da ferramente, é alguma propriedade que eu deveria colocar??? Obrigada

xtml

<p:panelGrid columns="1" rendered="#{pedidoBean.listarPedidos != null}">
    <p:panel style="border:0px">     
        <p:dataTable var="listarPedidos" value="#{pedidoBean.listaNfePendentes}" rowKey="#{listarPedidos.numDoc}" paginator="true"   
            style="font-size: 11px" id="listarPedidos" rows="10"
            selection="#{pedidoBean.selectedPedido}" selectionMode="single"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
            rowsPerPageTemplate="5,10,15,20"
            widgetVar="cmv"   emptyMessage="Não foram encontrados dados com esse critério">                                       

            <f:facet name="header">    
                <h:outputText value="Pedidos" />    
            </f:facet>    

            <p:column headerText="Processar" style="font-size: smaller">                                       
                <p:selectBooleanCheckbox value="#{listarPedidos.processar}" />                                                                                                                        
            </p:column>


            //Botão que chama o Dialog
            <p:column>    
                <f:facet name="header">    
                <h:outputText value="Itens"  style="font-size: smaller"/>    
                </f:facet>  
                <center>  
                    <p:commandButton icon="ui-icon-search" action="#{pedidoBean.gerarlistarPedidoItens()}" 
                        update=":formped:display"  oncomplete="ItensDialog.show()"   
                        style="font-size: smaller;">  
                        <f:setPropertyActionListener value="#{listarPedidos}" target="#{pedidoBean.pedido}" />  
					</p:commandButton>      
                </center>  
            </p:column> 

            <p:column headerText="Filial" style="font-size: smaller">
                <h:outputText value="#{listarPedidos.cdFilial}"/>
            </p:column>

            .
            .
	    .
	    //colunas com dados dos pedidos

	</p:dataTable>
    </p:panel>                            
</p:panelGrid> 
                        
<p:dialog id="dialog" header="Itens Pedido" widgetVar="ItensDialog" resizable="false"  
	showEffect="fade" hideEffect="explode" >  
    <h:panelGrid id="display" columns="2" cellpadding="4">  
         <p:dataTable var="listarPedidoItens" value="#{pedidoBean.listarPedidoItens}" rowKey="#{listarPedidoItens.apelido}" paginator="false"   
			style="font-size: 11px" id="listarPedidoItens"                                             
			widgetVar="listarPedidoItens"  emptyMessage="Não foram encontrados dados com esse critério">                                       
                                    
			<p:column headerText="Código Alternativo" style="width:15px;">                                        
                <h:outputText value="#{listarPedidoItens.apelido}"/>
            </p:column>
                                    
			.
			.
			.
			//colunas com dados dos itens
									
		</p:dataTable>
	</h:panelGrid>  
</p:dialog>  

Bean


public List<PedidoItens> gerarlistarPedidoItens() {
        pedidoController = new PedidoController();
        this.listarPedidoItens=(pedidoController.listarPedidoItens(pedido.getCdDf()));
        return listarPedidoItens;        
    }

vc debugou para ver se ele está trazendo o objeto certo? pq o problema pode ser soh na camada visual, que é o que eu acho que está acontecendo.
Eu vi q vc está usando um unico form certo?
Faça o seguinte.
primeiro nunca trabalhe com um form dentro de outro.(nao q vc esteja fazendo isso, soh uma dica (: )

segundo, coloque um forma para sua table, e um outro form dentro do dialog, antes do panelgrid. E no botao da table vc dar um update soh no form do dialog ok?
ex: “update=”:formDialog"

Eu debuguei, na primeira vez ele faz todo o processo corretamente, ele traz o objeto correto, tudo certinho, e quando eu clicava novamente ele nao fazia o mesmo processo, ele ja abria o dialog sem passar pelo metodo, ou seja sempre carregava primeiro objeto que ele buscava.

Eu fiz o que vc falou coloquei outro form antes do panelgrid, e mudeu o update do Commandbotton, mas da mesma maneira, ele busca o objeto so na primeira vez que clica e depois não passa mais pelo metodo… =/

é estranho mesmo, tire esse widgetvar da sua table, ela esta com o mesmo nome do var. ou tire ou mude o nome. geralmente nao ultimo widgetvar nas table

me diga uma coisa esse pedidoBean é o teu controle neh?

Isso é sim, o meu ManagedBean, eu mudei os nomes mas nada…

post por favor se possivel todo seu Bean e sua view

XTML


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

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <center>
            <ui:composition template="/menu.xhtml">
                <ui:define name="meio">
                    <h:form id="formped" style="font-size: 12px;">

                        <p:growl id="messages" showDetail="true"/>

                        <p:panel id="panel" header="Periodo">
                            Data Inicial:<p:calendar value="#{pedidoBean.dtInicial}" id="cal" showButtonPanel="true" pattern="dd/MM/yyyy"/> 
                            Data Final:<p:calendar value="#{pedidoBean.dtFinal}" id="cal1" showButtonPanel="true" pattern="dd/MM/yyyy"/> 

                            <h:selectOneMenu id="medico" value="#{pedidoBean.medico}" required="false">  
                                <f:selectItem itemLabel=" " itemValue="" />  
                                Medico: <f:selectItems value="#{pedidoBean.medicos}" />  
                            </h:selectOneMenu> 

                            &nbsp;&nbsp; <p:commandButton value="Consultar" action="#{pedidoBean.buscaDadosPedidos()}" update="@this,:formped" ></p:commandButton>
                        </p:panel>

                        <p:panelGrid columns="1" rendered="#{pedidoBean.listarPedidos != null}">
                            <p:panel style="border:0px">     
                                <p:dataTable var="listarPedidos" value="#{pedidoBean.listaNfePendentes}" rowKey="#{listarPedidos.numDoc}" paginator="true"   
                                             style="font-size: 11px" id="listarPedidos" rows="10"
                                             selection="#{pedidoBean.selectedPedido}" selectionMode="single"
                                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                             rowsPerPageTemplate="5,10,15,20"
                                             emptyMessage="Não foram encontrados dados com esse critério">                                       


                                    <f:facet name="header">    
                                        <h:outputText value="Pedidos" />    
                                    </f:facet>    

                                    <p:column headerText="Processar" style="font-size: smaller">                                       
                                        <p:selectBooleanCheckbox value="#{listarPedidos.processar}" />                                                                                                                        
                                    </p:column>

                                    <p:column>    
                                        <f:facet name="header">    
                                            <h:outputText value="Itens"  style="font-size: smaller"/>    
                                        </f:facet>  
                                        <center>  
                                            <p:commandButton icon="ui-icon-search" action="#{pedidoBean.gerarlistarPedidoItens()}" 
                                                             update=":formitens:display"   
                                                             style="font-size: smaller;" oncomplete="ItensDialog.show()">  
                                                <f:setPropertyActionListener value="#{listarPedidos}" target="#{pedidoBean.pedido}" />  
                                            </p:commandButton>    
                                        </center>  
                                    </p:column> 

                                    <p:column headerText="Filial" style="font-size: smaller">
                                        <h:outputText value="#{listarPedidos.cdFilial}"/>
                                    </p:column>

                                    <p:column headerText="Dt. Baixa" style="font-size: smaller">             
                                        <h:outputText value="#{listarPedidos.dtBaixa}">                                            
                                            <f:convertDateTime type="date" pattern="dd/MM/yyyy"/>  
                                        </h:outputText>
                                    </p:column>

                                    <p:column headerText="Vl. Original" style="font-size: smaller">                                        
                                        <h:outputText value="#{listarPedidos.vlOriginal}">                                        
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>

                                    <p:column headerText="Vl. Pago" style="font-size: smaller">                                        
                                        <h:outputText value="#{listarPedidos.vlPago}">                                        
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>
                                  
                                </p:dataTable>
                            </p:panel>                            
                        </p:panelGrid> 

                        <p:commandButton id="botao" value="Processar" 
                                         action="#{pedidoBean.cadastrarNfeParcelas}" update="@this,formped" >
                        </p:commandButton>
                    </h:form>

                    <p:dialog id="dialog" header="Itens Pedido" widgetVar="ItensDialog" resizable="false"  
                              showEffect="fade" hideEffect="explode"  >  
                        <h:form id="formitens" style="font-size: 12px;">
                            <h:panelGrid id="display" columns="2" cellpadding="4">  

                                <p:dataTable var="listarPedidoItens" value="#{pedidoBean.listarPedidoItens}" rowKey="#{listarPedidoItens.apelido}" paginator="false"   
                                             style="font-size: 11px" id="listarPedidoItens"                                             
                                             emptyMessage="Não foram encontrados dados com esse critério"> 


                                    <p:column headerText="Código Alternativo" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.apelido}"/>
                                    </p:column>
                                    <p:column headerText="Produto" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.nmProduto}"/>
                                    </p:column>
                                    <p:column headerText="Quantidade" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.qtMov}">
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>
                                    <p:column headerText="Custo" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.custoUnit}">
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>
                                    <p:column headerText="Unitário" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.vlLiquido}">
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>
                                    <p:column headerText="Total" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.vlTotal}">
                                            <f:convertNumber pattern="#,##0.00" currencySymbol="R$" type="currency"  maxFractionDigits="2" locale="pt_BR"></f:convertNumber>
                                        </h:outputText>
                                    </p:column>
                                </p:dataTable>
                            </h:panelGrid>  
                        </h:form> 
                    </p:dialog> 
                </ui:define>
            </ui:composition>    
        </center>
    </h:body>
</html>

Bean



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.portalonline.Bean;

import br.com.portalonline.controller.PedidoController;
import br.com.portalonline.model.NfeParcelas;
import br.com.portalonline.model.Pedido;
import br.com.portalonline.model.PedidoItens;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;

/**
 *
 * @author Administrator
 */
@ManagedBean(name = "pedidoBean")
@SessionScoped
public final class PedidoBean {

    private Date dtInicial;
    private Date dtFinal;
    private Integer filial;
    private Pedido pedido;
    PedidoController pedidoController = new PedidoController();
    private List<Pedido> listarPedidos;
    private List<Pedido> listarMedico;
    private List<PedidoItens> listarPedidoItens;
    private List<NfeParcelas> listaNfeCadastradas;
    private List<Pedido> listaNfePendentes;
    private Integer medico;
    private Map<String, Integer> medicos = new HashMap<String, Integer>();
    private PedidoItens selectedItens;  
    private PedidoItens selectedPedido;  

    public PedidoBean() {
        dtInicial = new Date();
        dtFinal = new Date();
        popularlistamedico();

    }

    public void popularlistamedico() {
        this.listarMedico = pedidoController.listarMedicos();
        for (Pedido dados : listarMedico) {
            medicos.put(dados.getNmMedico(), dados.getCdMedico());
        }
    }

	//Metodo que o Command deveria chamar
    public List<PedidoItens> gerarlistarPedidoItens() {
        pedidoController = new PedidoController();
        this.listarPedidoItens=(pedidoController.listarPedidoItens(pedido.getCdDf()));
        return listarPedidoItens;        
    }
    
    public void buscaDadosPedidos() {
        gerarlistarPedidos();
    }
    
    public List<Pedido> gerarlistarPedidos() {
        ...
        return listaNfePendentes;
    }

    public String cadastrarNfeParcelas() {

        ....

        FacesMessage msg = null;

        msg = new FacesMessage("Cadastrado com Sucesso!");

        FacesContext.getCurrentInstance().addMessage("formMsg", msg);

        return "/informacoes";    
}
    
    //Getters e Setters

Então pessoal, alguem sabe o pq ele nao chama o metodo novamente???

Desde já obrigada

Pessoas Lindas deu certo, ficou tudo dentro de um unico form, segue codigo abaixo

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

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <center>
            <ui:composition template="/menu.xhtml">
                <ui:define name="meio">
                    <h:form id="formped" style="font-size: 12px;">

                       .
					   .
					   .
					   
                        <p:panelGrid columns="1" rendered="#{pedidoBean.listarPedidos != null}">
                            <p:panel style="border:0px">     
                                <p:dataTable var="listarPedidos" value="#{pedidoBean.listaNfePendentes}" rowKey="#{listarPedidos.numDoc}" paginator="true"   
                                             style="font-size: 11px" id="listarPedidos" rows="10"
                                             selection="#{pedidoBean.selectedPedido}" selectionMode="single"
                                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                             rowsPerPageTemplate="5,10,15,20"
                                             emptyMessage="Não foram encontrados dados com esse critério">                                       


                                    <f:facet name="header">    
                                        <h:outputText value="Pedidos" />    
                                    </f:facet>    

                                    <p:column headerText="Processar" style="font-size: smaller">                                       
                                        <p:selectBooleanCheckbox value="#{listarPedidos.processar}" />                                                                                                                        
                                    </p:column>

                                    <p:column>    
                                        <f:facet name="header">    
                                            <h:outputText value="Itens"  style="font-size: smaller"/>    
                                        </f:facet>  
                                        <center>  
                                            <p:commandButton icon="ui-icon-search" action="#{pedidoBean.gerarlistarPedidoItens()}" 
                                                            [b] update=":formped" [/b] //mudei aqui tbm para dar update no form todo
                                                             style="font-size: smaller;" oncomplete="ItensDialog.show()">  
                                                <f:setPropertyActionListener value="#{listarPedidos}" target="#{pedidoBean.pedido}" />  
                                            </p:commandButton>    
                                        </center>  
                                    </p:column> 

                                    <p:column headerText="Filial" style="font-size: smaller">
                                        <h:outputText value="#{listarPedidos.cdFilial}"/>
                                    </p:column>

                                    .
									.
									.


                                </p:dataTable>
                            </p:panel>                            
                        </p:panelGrid> 



                        <p:dialog dynamic="true" id="dialog" header="Itens Pedido" widgetVar="ItensDialog" resizable="false"  
                                  showEffect="fade" hideEffect="explode"  draggable="false">  

                            <p:ajax event="close" update="dialog"/>  
                            
                            <h:panelGrid id="itens" columns="2" cellpadding="4">  

                                <p:dataTable var="listarPedidoItens" value="#{pedidoBean.listarPedidoItens}" rowKey="#{listarPedidoItens.apelido}" paginator="false"   
                                             style="font-size: 11px" id="listarPedidoItens"                                             
                                             emptyMessage="Não foram encontrados dados com esse critério"> 


                                    <p:column headerText="Código Alternativo" style="width:15px;">                                        
                                        <h:outputText value="#{listarPedidoItens.apelido}"/>
                                    </p:column>
                                    .
									.
									.
                                </p:dataTable>
                            </h:panelGrid>  
                            
                        </p:dialog> 
                        <p:commandButton id="botao" value="Processar" 
                                         action="#{pedidoBean.cadastrarNfeParcelas}" update="@this,formped" >
                        </p:commandButton>
                    </h:form>
                </ui:define>
            </ui:composition>    
        </center>
    </h:body>
</html>

Pessoal estou com um problema e não consigo resolver de forma alguma.
Tenho um sistema que ajuda na formulação de query e faz a consulta a partir dos elementos escolhidos pelo usuário.
Tenho as classes Campo, Operador (e/ou), OperadorCondicional(=, <, >, …), Valor e Campo(campos de uma tabela no BD)…

O problema é que eu montei um commandButton com um actionListener, e este não está chamando o método dentro do meu ManagedBean…
O estranho é que estava chamando, ai eu fiz algumas alterações no meu MB, e agora não está chamando mais.

esses dados teriam que ir para o dataTable regraPanel, só que o método dentro do meu MB não está sendo chamado.

[code]<?xml version="1.0" encoding="ISO-8859-1" ?>

..::Billing Verification::..
[b] | [/b] | | | | | | |
						</p:panel> 
						<!-- Fim do Painel onde tem os campos da condição da query -->
						<!-- Início do painel das informações do Período de execução da Query -->
						<p:panel header="Informações de Período" style="font-size:14px;" id="periodoPanel">
							<p:panelGrid styleClass="semBorda" id="gridPeriodo">
								<p:row>
									<!-- Campo Data inicial para restringir a busca no Teradata -->
									<p:column>Data Inicial:</p:column>
									<p:column>
										<p:calendar showOn="button" pattern="dd/MM/yyyy" readonlyInput="true"
													value="#{mbconsultanport.queryNPort.dataInicio}"  />   
									</p:column>
								</p:row>
								<p:row>
									<!-- Campo Data final para restringir a busca no Teradata -->
									<p:column>Data Final:</p:column>
									<p:column>
										<p:calendar showOn="button" pattern="dd/MM/yyyy" readonlyInput="true"
													value="#{mbconsultanport.queryNPort.dataFim}" />   
									</p:column>
								</p:row>
								<p:row>
									<!-- Campo Amostra para restringir a busca no Teradata -->
									<p:column>Amostra(limite:2000):</p:column>
									<p:column><p:inputText value="#{mbconsultanport.queryNPort.amostra}"/></p:column>
								</p:row>
							</p:panelGrid>
						</p:panel>
						<!-- Fim do painel das informações do Período de execução da Query -->
						<!-- Início do dataTable onde será mostrado as Condições da query -->
							[b]<p:dataTable id="regraPanel" style="font-size:14px;" 
							value="#{mbconsultanport.condicoes}" var="q" selectionMode="single" 
							rowKey="#{q}" selection="#{mbconsultanport.selectCondicao}"
							emptyMessage="Nenhuma condição incluida.">[/b]
								<f:facet name="header">Regra</f:facet>
								<p:column><h:outputText value="#{q.parentese}"/> </p:column>
								<p:column headerText="Campo">
									<h:outputText value="#{q.campo1}"/>
								</p:column>
								<p:column headerText="Condição">
									<h:outputText value="#{q.operadorCondicional}"/>
								</p:column>
								<p:column headerText="Valor/Campo2">
									<!-- Condição para saber se o campo valor está preenchido ou não -->
									<h:outputText value="#{q.valor1 == null ? q.campo2 : q.valor1}"/>
								</p:column>
								<p:column headerText="Valor2">
									<!-- Condição para saber se o campo valor2 está preenchido ou não -->
									<h:outputText value="#{q.valor2 != null ? q.valor2 : null}"/>
								</p:column>
								<p:column><h:outputText value="#{q.fechaParentese}"/> </p:column>
								<p:column headerText="Operador">
									<h:outputText value="#{q.operador}" />
								</p:column>
							</p:dataTable>
							<!-- Fim do dataTable onde será mostrado as Condições da query -->
			        </h:panelGrid>  
			        <!-- Fim do gridPrincipal --> 
			        <!-- Início da Dialog que vai mostrar o resultado da Query após busca no Teradata -->
			        <p:dialog appendToBody="true" id="resultadosql" 
			        header="Resultado SQL" widgetVar="resultadosql" 
			        modal="true" resizable="false" draggable="false">
						<p:dataGrid var="rq" value="#{mbconsultanport}" styleClass="semBorda">
							<p:column headerText="SQL">
								<h:outputText value="#{rq}"/>
							</p:column>
						</p:dataGrid>
					</p:dialog> 
					<!-- Fim da Dialog que vai mostrar o resultado da Query após busca no Teradata -->
					<!-- Início da Dialog para Mostrar a lista no formato Query -->
					<p:dialog id="dglsql" widgetVar="dglsql" header="Mostrar SQL" 
					modal="true" resizable="false" draggable="false">
						<p:dataGrid var="q" value="#{mbconsultanport}" styleClass="semBorda">
							<p:column>
								<h:outputText value="#{q}"/>
							</p:column>
						</p:dataGrid>
					</p:dialog>
					<!-- Fim da Dialog para Mostrar a lista no formato Query -->
		        </h:form>
		    </p:tab>
		</p:tabView>	
		</div>
		<div id="rodape">
			Copyright@Desenvolvido pela Equipe Novas Soluções
		</div>
	</center>
</div> 

</h:body>

[/code]

meu MB

[code]package com.accenture.managebeans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import com.accenture.entity.Amostra;
import com.accenture.entity.Campo;
import com.accenture.entity.Comparar;
import com.accenture.entity.Condicao;
import com.accenture.entity.Operador;
import com.accenture.entity.OperadorCondicional;
import com.accenture.entity.QueryNport;
import com.accenture.entity.Valor;
import com.accenture.persistence.CampoDAO;
import com.accenture.persistence.QueryNportDAO;

//Anotações para Definir o Escopo do ManagedBean
@ManagedBean(name = “mbconsultanport”)
@SessionScoped
public class MbConsultaNPort {
//Atributos do tipo lista do MB
private List condicoes;
private List cond;

//Atributos do Tipo OBJ do MB
private Condicao selectCondicao;
private Condicao condicao;
private QueryNport queryNPort; 

//Atributos do tipo DAO do MB
private QueryNportDAO dao = new QueryNportDAO();
private CampoDAO cdao = new CampoDAO();

//Atributos do Tipo OBJ do MB
private boolean inputHabilitado;
private boolean inputHabilitado2;
private Campo campo;
private Operador operador;
private OperadorCondicional opCondicional;
private Valor valor;
private Amostra amostra;
private Comparar comparar;

//Construtor do ManagedBean iniciando os atributos
public  MbConsultaNPort(){
	condicoes = new ArrayList<Condicao>();
	queryNPort = new QueryNport();
	selectCondicao = new Condicao();
	cond = new ArrayList<String>();
	condicao = new Condicao();
	inputHabilitado2 = true;
	campo = new Campo();
	valor = new Valor();
	amostra = new Amostra();
	operador = new Operador();
	opCondicional = new OperadorCondicional();
	comparar = new Comparar();

}


//Getters and Setters dos atributos criados
public Comparar getComparar() {
	return comparar;
}

public void setComparar(Comparar comparar) {
	this.comparar = comparar;
}

public Campo getCampo() {
	return campo;
}

public void setCampo(Campo campo) {
	this.campo = campo;
}

public Operador getOperador() {
	return operador;
}

public void setOperador(Operador operador) {
	this.operador = operador;
}

public OperadorCondicional getOpCondicional() {
	return opCondicional;
}

public void setOpCondicional(OperadorCondicional opCondicional) {
	this.opCondicional = opCondicional;
}

public Valor getValor() {
	return valor;
}

public void setValor(Valor valor) {
	this.valor = valor;
}

public Amostra getAmostra() {
	return amostra;
}

public void setAmostra(Amostra amostra) {
	this.amostra = amostra;
}

public List<Condicao> getCondicoes() {
	return condicoes;
}

public void setCondicoes(List<Condicao> condicoes) {
	this.condicoes = condicoes;
}

public List<String> getCond() {
	return cond;
}

public void setCond(List<String> cond) {
	this.cond = cond;
}

public Condicao getSelectCondicao() {
	return selectCondicao;
}

public void setSelectCondicao(Condicao selectCondicao) {
	this.selectCondicao = selectCondicao;
}

public Condicao getCondicao() {
	return condicao;
}

public void setCondicao(Condicao condicao) {
	this.condicao = condicao;
}

public QueryNport getQueryNPort() {
	return queryNPort;
}

public void setQueryNPort(QueryNport queryNPort) {
	this.queryNPort = queryNPort;
}

public boolean isInputHabilitado() {
	return inputHabilitado;
}

public void setInputHabilitado(boolean inputHabilitado) {
	this.inputHabilitado = inputHabilitado;
}

public boolean isInputHabilitado2() {
	return inputHabilitado2;
}

public void setInputHabilitado2(boolean inputHabilitado2) {
	this.inputHabilitado2 = inputHabilitado2;
}
//Fim dos Getters and Setters

//Método que resgata os campos do Teradata
public List<Campo> getCampos() throws Exception{
	
	List<Campo> listaCampos = new ArrayList<Campo>();
	
	try{
		//Condição que busca os resultados do Teradata e joga na variável consulta do tipo Campo
		for(Campo consulta : cdao.listarnPort()){
			listaCampos.add(consulta);
		}
	}catch(Exception e){
		e.printStackTrace();
	}
	return listaCampos;
}
//Método que cria os operadores
public List<Operador> getOperadores() throws Exception{
	
	List<Operador> listaOperador = new ArrayList<Operador>();
	
	listaOperador.add(new Operador("E"));
	listaOperador.add(new Operador("OU"));
	
	return listaOperador;
}
//Método que cria os operadores condicionais
public List<OperadorCondicional> getOperadorCondicionals() throws Exception{
	
	List<OperadorCondicional> listaOpCondicional = new ArrayList<OperadorCondicional>();
	
	listaOpCondicional.add(new OperadorCondicional("=", "Igual a"));
	listaOpCondicional.add(new OperadorCondicional("<>", "Diferente de"));
	listaOpCondicional.add(new OperadorCondicional(">", "Maior que"));
	listaOpCondicional.add(new OperadorCondicional("<", "Menor que"));
	listaOpCondicional.add(new OperadorCondicional(">=", "Maior ou igual que"));
	listaOpCondicional.add(new OperadorCondicional("<=", "Menor ou igual que"));
	listaOpCondicional.add(new OperadorCondicional("BETWEEN", "Entre"));
	listaOpCondicional.add(new OperadorCondicional("IS NULL", "Vazio"));
	listaOpCondicional.add(new OperadorCondicional("IS NOT NULL", "Não Vazio"));
	
	return listaOpCondicional;
}
//Método que cria os campos de comparação
public List<Comparar> getComparacao() throws Exception{
	
	List<Comparar> listaComparar = new ArrayList<Comparar>();
	
	listaComparar.add(new Comparar("Valor"));
	listaComparar.add(new Comparar("Campo"));
	
	return listaComparar;
}
/*Método que habilita o campo Campo do XHTML e desabilita o campo Valor do XHTML caso seja 
 * escolhido o campo Campo do comparar
 */
public void desabilitar(AjaxBehaviorEvent event){
	
	if(event.getComponent().getAttributes().get("value").toString().equalsIgnoreCase("Campo")){
		this.inputHabilitado = true;
	}else{
		this.inputHabilitado = false;
	}
}
//Método que habilita o campo Valor2 do XHTML caso seja escolhido o Entre do operadorCondicional
public void desabilitar2(AjaxBehaviorEvent event){
	
	if(event.getComponent().getAttributes().get("value").toString().equalsIgnoreCase("entre")){
		this.inputHabilitado2 = false;
	}else{
		this.inputHabilitado2 = true;
	}
}
//Método que monta as Condições e vai mostrar no dataTable Regra do XHTML
public void montar(ActionEvent e) throws Exception{
	if(condicoes == null){			
		condicoes = new ArrayList<Condicao>();
	}
	condicao.setCampo1(campo);
	condicao.setComparar(comparar);
	condicao.setOperador(operador);
	condicao.setOperadorCondicional(opCondicional);
	condicao.setValor1(valor);
	condicoes.add(condicao);

}[/code]

Minha Classe Condicao, que reune todas as outras classes citadas no início da resposta.

[code]package com.accenture.entity;

public class Condicao {

private Campo campo1;
private Campo campo2;
private Operador operador;
private OperadorCondicional operadorCondicional;
private Comparar comparar;
private Valor valor1;
private Valor valor2;
private String parentese;
private String fechaParentese;


public Condicao(Campo campo1, Campo campo2, Operador operador,
		OperadorCondicional operadorCondicional, Comparar comparar,
		Valor valor1, Valor valor2, String parentese, 
		String fechaParentese) {
	this.campo1 = campo1;
	this.campo2 = campo2;
	this.operador = operador;
	this.operadorCondicional = operadorCondicional;
	this.comparar = comparar;
	this.valor1 = valor1;
	this.valor2 = valor2;
	this.parentese = parentese;
	this.fechaParentese = fechaParentese;
}
public Condicao(Campo campo1){
	this.campo1 = campo1;
}


public Condicao() {
}

public Campo getCampo1() {
	return campo1;
}

public void setCampo1(Campo campo1) {
	this.campo1 = campo1;
}

public Campo getCampo2() {
	return campo2;
}

public void setCampo2(Campo campo2) {
	this.campo2 = campo2;
}

public Operador getOperador() {
	return operador;
}

public void setOperador(Operador operador) {
	this.operador = operador;
}

public OperadorCondicional getOperadorCondicional() {
	return operadorCondicional;
}

public void setOperadorCondicional(OperadorCondicional operadorCondicional) {
	this.operadorCondicional = operadorCondicional;
}

public Comparar getComparar() {
	return comparar;
}

public void setComparar(Comparar comparar) {
	this.comparar = comparar;
}

public Valor getValor1() {
	return valor1;
}

public void setValor1(Valor valor1) {
	this.valor1 = valor1;
}

public Valor getValor2() {
	return valor2;
}

public void setValor2(Valor valor2) {
	this.valor2 = valor2;
}

public String getParentese() {
	return parentese;
}

public void setParentese(String parentese) {
	this.parentese = parentese;
}

public String getFechaParentese() {
	return fechaParentese;
}

public void setFechaParentese(String fechaParentese) {
	this.fechaParentese = fechaParentese;
}


@Override
public String toString() {
	return "Condicao [campo1=" + campo1 + ", campo2=" + campo2
			+ ", operador=" + operador + ", operadorCondicional="
			+ operadorCondicional + ", valor1=" + valor1 + ", valor2="
			+ valor2 + ", Parentese=" + parentese
			+ ", fechaParentese=" + fechaParentese+"]";
}

}
[/code]

desde já agradeço pelas respostas