Salva galera do guj, estou fazendo um projeto em primefaces, e preciso utilizar um template com um menubar do primefaces, o problema é que as páginas quer herdam o template não renderizam os componentes do primefaces do mesmo, herdam toda a estrutura, divs e css, mas não os componentes do primefaces
Segue o template:
<?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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="./../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./../resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
<title>Facelets Template</title>
</h:head>
<h:body>
<div id="top" class="top">
<ui:insert name="top">
<ui:include src="/Template/menu.xhtml"/>
</ui:insert>
</div>
<div>
<div id="left">
<ui:insert name="left">Left</ui:insert>
</div>
<div id="content" class="left_content">
<ui:insert name="content">Content</ui:insert>
</div>
</div>
</h:body>
</html>
A página menu.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">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="./../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./../resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
<title>Facelets Template</title>
</h:head>
<h:body>
<h:form>
<p:menubar>
<p:submenu label="Venda" icon="ui-icon-document">
<p:submenu label="Pedido de Venda" icon="ui-icon-contact">
<p:menuitem value="Realizar PV" url="#{request.contextPath}/secure/pedido_venda.xhtml" />
<p:menuitem value="Open" url="#" />
<p:separator />
<p:menuitem value="Quit" url="#" />
</p:submenu>
</p:submenu>
</p:menubar>
</h:form>
</h:body>
</html>
Uma página que herda o template:
<?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>
</h:head>
<h:body>
<ui:composition template="/Template/newTemplate.xhtml">
<ui:define name="top">
top
</ui:define>
<ui:define name="left">
<h:form id="formCliente">
<p:menu>
<p:submenu label="Cadastros">
<p:menuitem value="Cliente" url="/faces/secure/secure/cadastro_cliente.xhtml" icon="ui-icon ui-icon-disk"/>
<p:menuitem value="Fornecedor" url="/faces/secure/cadastro_fornecedor.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Departamento" url="/faces/secure/cadastro_departamento.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Funcionario" url="/faces/secure/cadastro_funcionario.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Unidade de Medida" url="/faces/secure/cadastro_unidade_medida.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Categoria" url="/faces/secure/cadastro_categoria.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Marca" url="/faces/secure/cadastro_marca.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Produto" url="/faces/secure/cadastro_produto.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Banco" url="/faces/secure/cadastro_banco.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
</p:submenu>
<p:submenu label="Consultas">
<p:menuitem value="Cliente" url="/faces/secure/consulta_cliente.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Fornecedor" url="/faces/secure/consulta_fornecedor.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Departamento" url="/faces/secure/consulta_departamento.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Funcionario" url="/faces/secure/consulta_funcionario.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Unidade Medida" url="/faces/secure/consulta_unidade_medida.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Categoria" url="/faces/secure/consulta_categoria.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Marca" url="/faces/secure/consulta_marca.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Produto" url="/faces/secure/consulta_produto.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Banco" url="/faces/secure/consulta_banco.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
</p:submenu>
<p:submenu label="Venda">
<p:menuitem value="Pedido de Venda" url="/faces/secure/pedido_venda.xhtml" icon="ui-icon ui-icon-star"/>
<p:menuitem value="TouchFaces" url="#{request.contextPath}/touch" icon="ui-icon ui-icon-star"/>
</p:submenu>
</p:menu>
</h:form>
</ui:define>
<ui:define name="content">
<h:form id="form">
<!-- Panel somente para deixar com um cara melhor nosso
cadastro-->
<p:panel header="Cadastro de Cliente">
<p:messages id="mensagens" showDetail="true"/>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<p:inputText id="nome" label="nome" value="#{ClienteBean.cliente.nome}" maxlength="50" size="50" style="text-transform:uppercase" required="true" requiredMessage="Informe o nome"/>
<h:outputLabel value="CPF/CNPJ:" for="cpfCnpj" />
<p:inputText id="cpfCnpj" label="cpfCnpj" value="#{ClienteBean.cliente.cpfCnpj}" maxlength="14" size="40" required="true" requiredMessage="Informe o CPF/CNPJ"/>
<h:outputLabel value="Endereço:" for="end" />
<p:inputText id="end" label="end" value="#{ClienteBean.cliente.endereco}" maxlength="80" size="50" style="text-transform:uppercase" required="true" requiredMessage="Informe o Endereço" />
<h:outputLabel value="Complemento:" for="comple" />
<p:inputText id="comple" label="comple" value="#{ClienteBean.cliente.complemento}" maxlength="45" size="50" style="text-transform:uppercase" />
<h:outputLabel value="Número" for="nro" />
<p:inputText id="nro" label="nro" value="#{ClienteBean.cliente.numero}" maxlength="10" size="40" />
<h:outputLabel value="CEP:" for="cep" />
<p:inputMask id="cep" label="cep" value="#{ClienteBean.cliente.cep}" mask="99999-999" required="true" requiredMessage="Informe o Cep"/>
<h:outputLabel value="Bairro:" for="bairro" />
<p:inputText id="bairro" label="bairro" value="#{ClienteBean.cliente.bairro}" maxlength="30" size="50" style="text-transform:uppercase" />
<h:outputLabel value="Telefone 1:" for="tel1" />
<p:inputMask id="tel1" label="tel1" value="#{ClienteBean.cliente.telefone1}" mask="([telefone removido]" required="true" requiredMessage="Informe o telefone"/>
<h:outputLabel value="Telefone 2:" for="tel2" />
<p:inputMask id="tel2" label="tel2" value="#{ClienteBean.cliente.telefone2}" mask="([telefone removido]"/>
<h:outputText value="Estado:" />
<p:selectOneMenu id="estado" value="#{ClienteBean.nomeEstado}" height="120" style="width: 150px" required="true" requiredMessage="Selecione o Estado">
<f:selectItem itemLabel="Selecione" itemValue=""/>
<f:selectItems value="#{ClienteBean.estados}"/>
<p:ajax update="cidade" listener="#{ClienteBean.atualizaCidades}"/>
</p:selectOneMenu>
<h:outputText value="Cidade:" />
<p:selectOneMenu id="cidade" value="#{ClienteBean.nomeCidade}" height="120" style="width: 150px" required="true" requiredMessage="Selecione a Cidade">
<f:selectItem itemLabel="Selecione" itemValue=""/>
<f:selectItems value="#{ClienteBean.cidades}" var="c" itemLabel="#{c.nome}" itemValue="#{c.codCidade}"/>
</p:selectOneMenu>
<p:commandButton id="btnSalvar" image="ui-icon-disk" value="Cadastrar" actionListener="#{ClienteBean.salvar}" update="form" />
</h:panelGrid>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>