Problema Primefaces + Template Facelets

2 respostas
Nader_Daher

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>

2 Respostas

juniorsatanas

Da uma olhda nessas tags…

<ui:fragment
><ui:composition
><ui:include>

Nader_Daher

retirei as tags ui:insert e deu certo, obrigado.

Criado 21 de julho de 2012
Ultima resposta 22 de jul. de 2012
Respostas 2
Participantes 2