Boa tarde galera,
estou iniciando nos estudos no JSF então estava fazendo alguns testes com 2 DataTables (Tomahawk) e cada um tem um  commandLink com action para exibir os dados do item selecionado.
O primeiro lista as enquetes, o segundo lista as opções da enquete selecionada na primeira tabela.
Legal, o dataTable 1 funciona perfeito, clico lá exibe os dados da enquete e preenche o dataTable 2 com as opções.
Agora no dataTable 2 o action simplesmente não é invocado, clica-se no link a página é recarregada mas não chama o método.
Está assim o dataTable 1:
[code]        <t:dataTable
value="#{enqueteAction.listaEnquete}"
var=“dados”
binding="#{enqueteAction.dataTable}">
      <h:column>
        <f:facet name="header">
          <h:outputText value="Código"/>
        </f:facet>
        <t:commandLink 
            actionListener="#{enqueteAction.exibirDadosAction}"
            value="#{dados.codigo}"/>
      </h:column>
      <h:column>
        <f:facet name="header">
          <h:outputText value="Pergunta"/>
        </f:facet>
        <h:outputText value="#{dados.pergunta}"/>
      </h:column>          
      
    </t:dataTable>[/code]
Funciona perfeito. Agora o dataTable 2:
[code]        <t:dataTable
value="#{enqueteOpcaoAction.listEnqueteOpcoes}"
var=“dadosOp”
binding="#{enqueteOpcaoAction.dataTableOpcao}">
        <h:column>
          <f:facet name="header">
            <h:outputText value="Código"/>
          </f:facet>
          <t:commandLink 
              actionListener="#{enqueteOpcaoAction.exibirDadosOpcaoAction}"
              value="#{dadosOp.codigo}"/>
        </h:column>
        
        <h:column>
          <f:facet name="header">
            <h:outputText value="Descrição"/>
          </f:facet>
          <h:outputText value="#{dadosOp.descricao}"/>
        </h:column>
        
    </t:dataTable>[/code]
Não chama o método, inclui um logger.info logo na primeira linha para saber se está passando por lá, mas nada é registrado no arquivo de log.
Código do action da primeira tabela:
  public void exibirDadosAction(ActionEvent event) {
    msg = "";
    try {
      //atualizar o managedBean enquete de acordo com o item selecionado no DataTable
      registroAtual();
      if (enquete != null) {
        setEnqueteManaged();
      }
    }
    catch (Exception err) {
      logger.error("Erro ao exibir: ", err);
    }
  }
Action da segunda tabela:
  public void exibirDadosOpcaoAction(ActionEvent event) {
    logger.info("Passou action opcao.");
    msg = "";
    try {
      registroAtualOpcao();
      if (enqueteOp != null) {
        setEnqueteOpcaoManaged();
      }
    }
    catch (Exception err) {
      logger.error("Erro ao exibir dados da opção da enquete:", err);
    }
  }  
Neste segundo sequer passa pelo logger…
Está tudo mapeado no faces-config:
[code]  <managed-bean>
<managed-bean-name>enquete</managed-bean-name>
<managed-bean-class>com.mrinfo.controle.Enquete</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>enqueteAction</managed-bean-name>
<managed-bean-class>com.mrinfo.action.EnqueteAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>enqueteOpcao</managed-bean-name>
<managed-bean-class>com.mrinfo.controle.EnqueteOpcao</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>enqueteOpcaoAction</managed-bean-name>
<managed-bean-class>com.mrinfo.action.EnqueteOpcaoAction</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>[/code]
Sempre q tento utilizada 2 dataTables dá algum problema na chamada de actions…
alguem sabe pq acontece isso… 