Arquivos incluídos pelo <ui:include /> não executam suas actions!

Olá pessoal, estou tentando montar meu sistema e queria usar meu menu para atualizar o conteúdo da página principal, o primeiro passo já consegui que foi usar um MB para gerenciar a url a ser incluída.
O Problema é que os arquivos que eu incluo não executam as actions de seus botões e nem fazem nenhuma action como dialogs e selection de DataTables.
Como devo proceder para corrigir isso?

Propiedades do projeto
JSF 2.0
Mojarra 2.0.3
Primefaces 2.0

Abaixo seguem os códigos
principal.xhtml(modelo de Facelet)

<?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:p="http://primefaces.prime.com.tr/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="#{facesContext.externalContext.requestContextPath}/resources/css/default.css" rel="stylesheet" type="text/css" />
        <link href="#{facesContext.externalContext.requestContextPath}/resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
        <link href="#{facesContext.externalContext.requestContextPath}/resources/css/redmond/skin.css" type="text/css" rel="stylesheet" />
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <ui:insert name="top">
            <h:form>
                <p:growl />
                <p:menubar>
                    <p:submenu>
                        <f:facet name="label">
                            <p:menuitem action="#{pagesMB.setTeste}" ajax="true" value="Principal" update="outputPanelConteudo,include"  />
                        </f:facet>
                    </p:submenu>
                    <p:submenu label="Cliente">
                        <p:menuitem action="#{pagesMB.setCadastrarCliente}" value="cadastrar" update="outputPanelConteudo"/>
                        <p:menuitem action="#{pagesMB.setBuscarCliente}" value="listar" update="outputPanelConteudo" />
                        <p:menuitem action="#{pagesMB.setCadastroItemCliente}" value="cadastrar item para o cliente" update="outputPanelConteudo" />
                        <p:menuitem action="#{clienteMB.listarItemDoCliente}" value="listar itens de todos os" ajax="false" />
                    </p:submenu>
                    <p:submenu label="Ordem de Serviço">
                        <p:menuitem action="#{servicoMB.abrir}" value="abrir" ajax="false"/>
                        <p:menuitem action="#" value="listar" ajax="false" />
                        <p:menuitem action="#" value="fechar" ajax="false"/>
                        <p:menuitem action="#" value="cadastrar item para o serviço" ajax="false" />
                    </p:submenu>
                    <p:submenu label="Equipamentos" >
                        <p:menuitem action="#{equipamentoMB.cadastrarNovoEquipamento}" value="cadastrar novo tipo de equipamento" ajax="false" />
                        <p:menuitem action="#{equipamentoMB.listarEquipamentos}" value="listar tipos de equipamentos" ajax="false" />
                    </p:submenu>
                    <p:submenu label="Processo" >
                        <p:menuitem action="#" value="ver processos" ajax="false" />
                        <p:menuitem action="#" value="procurar processos" ajax="false" />
                    </p:submenu>
                </p:menubar>
            </h:form>
        </ui:insert>
        <div id="content" class="center_content">
            <ui:insert name="content"></ui:insert>
        </div>
    </h:body>
</html>

index.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"
                template="templates/principal.xhtml"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:define name="content">
        <p:outputPanel id="outputPanelConteudo">
            <ui:include src="#{pagesMB.paginaAtual}"  />
        </p:outputPanel>
    </ui:define>
</ui:composition>

filtroCadstro_1.xhtml(página que quero incluir)

<?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:p="http://primefaces.prime.com.tr/ui"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:form>
        <p:panel header="Cadastro de clientes" id="panel" >
            <h:panelGrid columns="2">'
                <h:panelGroup>
                    <h:panelGrid columns="2">
                        <h:outputText value="Nome" />
                        <h:inputText id="nomeCliente" value="#{clienteMB.cliente.nome}" size="40" />
                        <p:commandButton actionListener="#{clienteMB.pesquisar}" value="procurar" update="prmBusca" />
                        <h:outputText value="#{clienteMB.cliente.nome}" id="prmBusca" />
                    </h:panelGrid>
                </h:panelGroup>
            </h:panelGrid>
        </p:panel>
    </h:form>
</ui:composition>

Obrigado pela atenção!

Nimguém?

Aí está o post que me encorajou a usar esta técnica porém pqelo que vi não é tão funcional assim.

alguém pode me ajudar por favor…

Renato, não entendo o que deu errado? No exemplo que fiz utilizei o primefaces 2.2 rc2 e funcionou perfeitamente.

Oi Benigno, bem como te falei acompanhei a explicação de seu Post e sim consegui fazer a inclusão de outros arquivos jsf dento de um de forma dinâmica.
Até aí tudo bem, acontece que dentro das páginas que incluo existem botões e componentes com eventos, testo essas páginas isoladamente e funcionam perfeitamente, executando suas ações do jeito que foram programadas a fazer, mas assim que eu tento testar essas mesmas páginas como fragmentos de código a serem incluídas nas minha página principal, elas não executam nenhum dos eventos.

queria saber se tem algum padrão ou regra que tenho que montar para essas páginas que desejo incluir para que suas actions funcionem normalmente.
Obrigado.

Só para esclarecer melhor minha dúvida, vou te mostrar onde está a falha

   1. <?xml version='1.0' encoding='UTF-8' ?>  
   2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
   3. <ui:composition xmlns="http://www.w3.org/1999/xhtml"  
   4.               xmlns:p="http://primefaces.prime.com.tr/ui"  
   5.               xmlns:h="http://java.sun.com/jsf/html"  
   6.               xmlns:f="http://java.sun.com/jsf/core"  
   7.               xmlns:ui="http://java.sun.com/jsf/facelets">  
   8.     <h:form>  
   9.         <p:panel header="Cadastro de clientes" id="panel" >  
  10.             <h:panelGrid columns="2">'  
  11.                 <h:panelGroup>  
  12.                     <h:panelGrid columns="2">  
  13.                         <h:outputText value="Nome" />  
  14.                         <h:inputText id="nomeCliente" value="#{clienteMB.cliente.nome}" size="40" />  
  15.                        [i] <p:commandButton actionListener="#{clienteMB.pesquisar}" value="procurar" update="prmBusca" />  [/i]
  16.                         <h:outputText value="#{clienteMB.cliente.nome}" id="prmBusca" />  
  17.                     </h:panelGrid>  
  18.                 </h:panelGroup>  
  19.             </h:panelGrid>  
  20.         </p:panel>  
  21.     </h:form>  
  22. </ui:composition>  

bem, aí fez um exemplo bem simples de página, apenas um pequeno formulário que digita um nome qualquer e ele atualiza o <h:outputText value="#{clienteMB.cliente.nome}" id=“prmBusca” /> com o nome digitado quando o botão é pressionado, além disso dentro do MB, criei o seguinte método

public void pesquisar(ActionEvent e){
   System.out.println("teste");
}

nada mais do que uma simples sáida.
como te disse, testando isso como uma página isolada, funciona perfeitamente, mas se esse arquivo passa a ser incluído dinamicamente ele não chega a fazer nenhuma das funcionalidade citadas.

Espero ansiosamente sua resposta.

to com um problema semelhante a esse
so que quando eu uso a penas o include o form funciona normalmente
so que na minha pagina eu quero apresentar uma lista e um formulario de cadastro no mesmo espaço usando rendered.
algo mais ou menos dessa forma

                    <h:panelGroup rendered="#{param.act == null}">
                        <ui:include src="./clientelista.xhtml" />
                    </h:panelGroup>
                    <h:panelGroup rendered="#{param.act == 1}" >
                        <ui:include src="./clientecadastro.xhtml" />
                    </h:panelGroup>

se eu tirar os h:panelGroup com os rendered o negocio funciona normal

Olá Renato,

Fiz vários testes, com action, dialog, etc…

Coloquei o projeto para donwload aqui:
http://www.seedcursos.com.br/PlataformaSeed/

Basta se cadastrar e fazer o donwload.

cara, baixei seu projeto mas ele veio só com o index e nenhum código-fonte, porém notei qque vc roda ele com o glassfish, eu estou usando o apache tomcat, será essa a causa do problema???

se puder postar seu projeto corretamente agradeço muito.

É provável, o tomcat ainda não provê todas as funcionalidades de Java EE 6, e não sou muito fã de TOMCAT por isso uso glassfish. Devo ter colocado o codigo fonte errado mesmo. Eu subi o projeto novamente, pode tentar.

renatowebprog

cara pode me enviar por email o projeto
para dar unas olhadas.

ajinfortec@gmail.com

não consigo me cadastra nesse sistema.

vlw.

Velho tu conseguiu resolver isso ? Estou com o mesmo problema.

Eu também estou com o mesmo problema. Para o nosso desespero venho procurando solução neste e em outros fóruns e não encontro solução.

Gurus do fórum por favor nos ajudem.