Galera estou tentando fazer uma aplicação, onde possuo os templates montados em facelets, tenho um painel central e um onde ficam os dialogs do primefaces, quero fazer com que ao selecionar o menu, faça o update nos paineis, fazendo assim a navegacao do sistema por ajax sem recarregar pagina.
Conteudo do template.xhtml
[code]<h:body>
<p:growl id=“growlMessage” showDetail=“true” />
<ui:insert name="body">
<p:layout fullPage="true">
<p:layoutUnit position="top" height="52">
<p:panel id="pnlTopo" styleClass="topo">
<ui:insert name="login">
<ui:include src="usuarioLogado.xhtml"/>
</ui:insert>
</p:panel>
</p:layoutUnit>
<p:layoutUnit position="center" closable="false">
<ui:insert name="menu"/>
<br/>
<p:outputPanel id="pnlCorpo">
<ui:include src="${menuController.menuSelected}"/>
</p:outputPanel>
</p:layoutUnit>
<p:layoutUnit position="bottom" height="75">
<ui:include src="rodape.xhtml"/>
</p:layoutUnit>
</p:layout>
<p:outputPanel id="pnlDialog" rendered="${menuController.hasDialog}">
<ui:include src="${menuController.dialogSelected}"/>
</p:outputPanel>
</ui:insert>
</h:body>[/code]
Conteudo do home.xhtml
[code]<ui:composition template="…/resources/template.xhtml">
<ui:define name="menu">
<ui:include src="../resources/menu.xhtml" />
</ui:define>
</ui:composition>[/code]
por padrao apos fazer o login, a aplicação chama a pagina home.jsf
ao incluir o menu.xhtml
<p:menubar autoSubmenuDisplay="true">
<p:submenu label="Cadastro" icon="ui-icon ui-icon-pencil">
<p:menuitem value="Empresa" actionListener="${menuController.menuEmpresa}"
update="pnlCorpo pnlDialog" process="@this" icon="ui-icon ui-icon-triangle-1-e"/>
<p:menuitem value="Usuário" actionListener="${menuController.menuUsuario}"
update="pnlCorpo pnlDialog" process="@this" icon="ui-icon ui-icon-triangle-1-e"/>
</p:submenu>
ao selecionar determinado menu eu faço o update nos dois paineis do template.
eu adiciono a listaEmpresa.html no pnlCorpo
[code]<h:form prependId=“false”>
<p:dataTable id="tbEmpresa" var="empresa" value="#{empresaController.empresaList}"
paginatorPosition="bottom" emptyMessage="Nenhuma Empresa encontrada!"
paginator="true" rows="15"
selection="#{empresaController.selectedEmpresa}" selectionMode="single"
onRowSelectComplete="dlgEmpresa.show()"
onRowSelectUpdate="pnlEmpresa">
<f:facet name="header">
<p:toolbar styleClass="bordaIE">
<p:toolbarGroup align="left">
<p:commandButton id="btnNovo" value="Novo" update="pnlEmpresa" styleClass="btnTexto" image="btnAdd"
oncomplete="dlgEmpresa.show()" />
<p:divider />
<h:selectOneMenu id="cbPesquisa" styleClass="cbPesquisa">
<f:selectItem itemLabel="Código" itemValue="0" />
<f:selectItem itemLabel="Razão Social" itemValue="1"/>
<f:selectItem itemLabel="Nome Fantasia" itemValue="2"/>
<f:selectItem itemLabel="CNPJ" itemValue="3"/>
<f:selectItem itemLabel="Data Cadastro" itemValue="4"/>
</h:selectOneMenu>
<p:inputText styleClass="txtPesquisa"/>
<p:commandButton value="Buscar" styleClass="btnTexto" image="btnBusca"/>
</p:toolbarGroup>
</p:toolbar>
</f:facet>
<p:column sortBy="#{empresa.id}">
<f:facet name="header">
Id
</f:facet>
<h:outputText value="#{empresa.id}"/>
</p:column>
<p:column sortBy="#{empresa.cnpj}" filterBy="#{empresa.cnpj}">
<f:facet name="header">
CNPJ
</f:facet>
<h:outputText value="#{empresa.cnpj}"/>
</p:column>
<p:column sortBy="#{empresa.razaoSocial}" filterBy="#{empresa.razaoSocial}">
<f:facet name="header">
Razão Social
</f:facet>
<h:outputText value="#{empresa.razaoSocial}"/>
</p:column>
<p:column sortBy="#{empresa.nomeFantasia}" filterBy="#{empresa.nomeFantasia}">
<f:facet name="header">
Nome Fantasia
</f:facet>
<h:outputText value="#{empresa.nomeFantasia}"/>
</p:column>
<p:column sortBy="#{empresa.dataCad}">
<f:facet name="header">
Data Cadastro
</f:facet>
<h:outputText value="#{empresa.dataCad}"/>
</p:column>
</p:dataTable>
</h:form>[/code]
e no pnlDialog o dialogEmpresa.xhtml
<p:dialog id="dlgEmpresa" widgetVar="dlgEmpresa" header="Cadastro Empresa"
resizable="false" width="350" height="250" modal="true" showEffect="clip">
<h:form prependId="false">
<p:outputPanel id="pnlEmpresa">
<p:panel header="Código" styleClass="pnlCodigo">
<h:outputLabel value="${empresaController.selectedEmpresa.id}"/>
</p:panel>
<p:panel header="Dados" styleClass="pnlDados">
<h:panelGrid columns="2">
<h:outputLabel for="txtRazaoSocial" value="Razão Social"/>
<p:inputText id="txtRazaoSocial" value="${empresaController.selectedEmpresa.razaoSocial}"/>
<h:outputLabel for="txtNomeFantasia" value="Nome Fantasia"/>
<p:inputText id="txtNomeFantasia" value="${empresaController.selectedEmpresa.nomeFantasia}"/>
<h:outputLabel for="txtCnpj" value="CNPJ"/>
<p:inputText id="txtCnpj" value="${empresaController.selectedEmpresa.cnpj}"/>
</h:panelGrid>
</p:panel>
<p:outputPanel >
<p:commandButton value="Salvar" styleClass="btnTexto" image="btnAceito" />
<p:commandButton value="Cancelar" styleClass="btnTexto" image="btnCancelar"/>
</p:outputPanel>
</p:outputPanel>
</h:form>
</p:dialog>
as paginas aparecem e navegam normalmente, o problema é que dessa maneira ao clicar na linha no dataTable nao executa o metodo setSelectedEmpresa, e com isso nao atualiza o objeto e no dialog traz o objeto vazio, se eu tiro dos templates e faço diretamente funciona normal, o que esta errado, algum bug?