Bom dia amigos,
Estou tentanto criar um template para ser utilizado em um sistema que usa PrimeFaces, no entanto sempre quando tento rodar é lançada a exception:
java.lang.StackOverflowError
java.lang.Exception.<init>(Unknown Source)
java.lang.RuntimeException.<init>(Unknown Source)
javax.el.ELException.<init>(ELException.java:54)
Os templates criados com Facelets são imcompatíveis com o layout do Prime?
Vejam meu código completo:
default.xhtml (template)
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
Gerenciador de créditos reprográficos
<style type="text/css">
.ui-widget {
font-size: 12px !important;
}
<p:growl id="messages" />
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="false"
closable="false" collapsible="true">
</p:layoutUnit>
<p:layoutUnit position="south" size="25" resizable="false"
closable="false" collapsible="true">
<center>
<h:outputLabel value="rodape" />
</center>
</p:layoutUnit>
<p:layoutUnit position="west" size="200px" resizable="true"
closable="false" collapsible="true" effect="drop">
<ui:include src="menu.xhtml"></ui:include>
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="conteudo" />
</p:layoutUnit>
</p:layout>
</h:body>
[/code]
reprografia.xhtml
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
<ui:composition template=“default.xhtml”>
<ui:define name=“conteudo”>
<h:outputText value="Isto deve aparecer no centro da aplicação" />
</ui:define>
</ui:composition>
[/code]
menu.xhtml
[code]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<ui:composition template=“default.xhtml”>
<ui:define name=“menu”>
<f:view>
<h:form id=“formMenu”>
<p:menu style=“width:200px; height: 400px”>
<p:submenu label=“Creditos de impressao”>
<p:menuitem value=“Gerenciar creditos” update=“messages” />
</p:submenu>
<p:submenu label=“Relatorios”>
<p:menuitem value=“Resumo diario” update=“messages” ajax=“false” />
<p:menuitem value=“Resumo por operador” update=“messages”
ajax=“false” />
<p:menuitem value=“Creditos por aluno” update=“messages”
ajax=“false” />
<p:menuitem value=“Impressoes por aluno” update=“messages”
ajax=“false” />
<p:menuitem value=“Impressoes por impressora” update=“messages”
ajax=“false” />
<p:menuitem value=“Creditos por reprografia” update=“messages”
ajax=“false” />
<p:menuitem value=“Creditos por periodo” update=“messages”
ajax=“false” />
</p:submenu>
<p:submenu label=“Ferramentas”>
<p:menuitem value=“Gerenciar operador” update=“messages”
ajax=“false” />
<p:menuitem value=“Modo administrador” update=“messages”
ajax=“false” />
</p:submenu>
</p:menu>
</h:form>
</f:view>
</ui:define>
</ui:composition>
[/code]
Obrigado guj.
Meu brother vamos lá eu sou iniciante mas o meu esta funcionando normalmente. vou postar meu código e depois te falar onde acho que esta o erro
–X-- MEU TEMPLATE --X–
<?xml version="1.0" encoding="UTF-8"?>
Concursando Web
body {margin: 0; padding: 0; background: #ddd;}
#container {margin: 0 auto; width: 1002px; background: #fff;}
#header {background: #0066ff; height: 200px; margin: 0 0 10px 0;}
#mainnav { background: #00cccc; margin: 0 10px 10px 10px;} /**/
#content { margin: 0 10px 10px 10px;}/* */
#footer {clear: both; background: #99ccff; height: 200px;}
.ui-widget,
.ui-widget .ui-widget {font-size: 12px !important;}
</style>
</h:head>
<h:body>
<div id="container">
<div id="header" title="Concursando Web">
<div id="skipmenu"></div>
</div> <!-- final div header -->
<div id="mainnav">
<ui:include src="/mainNav.xhtml" />
</div> <!-- final div mainnav -->
<div id="content">
<div class="contents">
<ui:insert name="contents" />
</div> <!-- final div contents -->
</div><!-- final div content -->
<div id="footer">
<ui:include src="/footer.xhtml" />
</div><!-- final div footer -->
</div> <!-- final div container -->
</h:body>
minha index que usa o <ui:insert name"" /> no template
–X--
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
template="/template.xhtml">
<ui:define name=“contents”>
<h:form id=“verConcurso”>
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos.
Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado.
Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos.
Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado.
Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.
</h:form>
</ui:define>
</ui:composition>[code]
[code]Legal…
Nas paginas que você usa o template você não usa as tags
Fica tudo dentro do
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
template="/template.xhtml">
Repara no template="/template.xhtml" esta no ui:composition acho que resolve abraço.
</ui:composition>[/code]
Opa goperzin,
Valeu maninho, foi isso mesmo que aconteceu!
Veja meu código como ficou:
template
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
Gerenciador de créditos reprográficos
<style type="text/css">
.ui-widget {
font-size: 12px !important;
}
<p:growl id="messages" />
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="false"
closable="false" collapsible="true">
</p:layoutUnit>
<p:layoutUnit position="south" size="25" resizable="false"
closable="false" collapsible="true">
<ui:include src="/rodape.xhtml"/>
</p:layoutUnit>
<p:layoutUnit position="west" size="200px" resizable="true"
closable="false" collapsible="true" effect="drop">
<ui:include src="/menu.xhtml" />
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="conteudo" />
</p:layoutUnit>
</p:layout>
</h:body>
[/code]
reprografia.xhtml
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.org/ui”
template="/WEB-INF/templates/default.xhtml">
<ui:define name="conteudo">
<h:outputText value="Isto deve aparecer no centro da aplicação" />
</ui:define>
</ui:composition>
[/code]
menu.xhtml
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
<h:body>
<h:form id="formMenu">
<p:menu style="width:200px; height: 400px">
<p:submenu label="Creditos de impressao">
<p:menuitem value="Gerenciar creditos" update="messages" />
</p:submenu>
<p:submenu label="Relatorios">
<p:menuitem value="Resumo diario" update="messages" ajax="false" />
<p:menuitem value="Resumo por operador" update="messages"
ajax="false" />
<p:menuitem value="Creditos por aluno" update="messages"
ajax="false" />
<p:menuitem value="Impressoes por aluno" update="messages"
ajax="false" />
<p:menuitem value="Impressoes por impressora" update="messages"
ajax="false" />
<p:menuitem value="Creditos por reprografia" update="messages"
ajax="false" />
<p:menuitem value="Creditos por periodo" update="messages"
ajax="false" />
</p:submenu>
<p:submenu label="Ferramentas">
<p:menuitem value="Gerenciar operador" update="messages"
ajax="false" />
<p:menuitem value="Modo administrador" update="messages"
ajax="false" />
</p:submenu>
</p:menu>
</h:form>
</h:body>
[/code]
Obrigado!!!
Boa brother coloca como - RESOLVIDO -
Abraço.
Cara, estou com este problema, mas minhas páginas estão corretas e mesmo assim não aparece nada no meu login.xhtml. Ela fica toda cinza que é a cor que eu defini dentro do style. O mais engraçado é que estava tudo funcionando perfeitamente e do nada parou. Por favor, sera que poderiam me ajudar sou novo em Primefaces.
Vou deixar meu template pra vocês darem uma olhada e minha tela.
Obrigado.
Meu template[i]
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><ui:insert name="titulo">Titulo</ui:insert></title>
<style type="text/css">
body {background-color: #eeeeee; font-size: 12px}
.ui-widget {font-size: 11px !important; font-style: normal; font-family: geneva, arial, helvetica, sans-serif;}
.ui-selectonemenu-label{text-align: left;alignment-baseline: alphabetic;}
</style>
</h:head>
<h:body>
<p:growl id="popup"/>
<center>
<p:layout style="min-width:1035px;max-width:1250px;min-height:700px" id="layout" fullPage="false">
<p:layoutUnit position="north" size="80" resizable="false" closable="false" collapsible="true">
<!-- <h:graphicImage url="/tema/imagens/topo.jpg" /> -->
</p:layoutUnit>
<p:layoutUnit position="south" size="30" resizable="false" closable="false" collapsible="true">
<h:outputText value="AUTOR" />
</p:layoutUnit>
<p:layoutUnit position="west" size="150px" resizable="true" closable="false" collapsible="true" effect="drop">
<!-- <ui:include src="menu.xhtml"></ui:include> -->
<h:form>
<p:menu>
<p:submenu label="Menu"> <!-- action="#{regrasController.logout}" -->
<p:menuitem value="Logoff" ajax="false" icon="ui-icon-key"/>
<!-- <p:menuitem value="Cadastro" icon="ui-icon-contact" /> -->
</p:submenu>
</p:menu>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="centro">
O que estiver aqui será substituido!
</ui:insert>
</p:layoutUnit>
</p:layout>
</center>
<!-- FORM UPLOAD AUDIO -->
<p:dialog showEffect="explode" hideEffect="explode" modal="true" header="Enviar Audio:" height="auto" width="auto" widgetVar="uploadDialog" appendToBody="true" resizable="false">
<h:form id="formUpload" enctype="multipart/form-data" >
<p:panel id="panel" style="margin-bottom:10px; border: 0px;">
<p:fileUpload fileUploadListener="#{UploadAudio.upload}" showButtons="false" label="Procurar..." auto="false" oncomplete="uploadDialog.hide();"/>
<p:growl id="popup" showDetail="true"/>
</p:panel>
</h:form>
</p:dialog>
<!-- FORM EDITAR REGRA -->
</h:body>
Meu login.xhtml[/i]
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
template="/template/template.xhtml">
<h:outputLabel value="Senha:" for="senha"/>
<p:password style="font-size:12px !important;" value="#{LoginManagedBean.usuario.senha}" id="senha" required="true" label="senha" />
<f:facet name="footer">
<p:commandButton style="font-size:12px !important;" action="#{LoginManagedBean.login}" value="Logar" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
Meu index.xhtml[i]
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:p=“http://primefaces.org/ui”
template="/template/template.xhtml">
<ui:define name="centro">
<h:form id="formCad">
<p:growl id="msg"/>
<p:row>
<p:column colspan="15">Cadastro de Regras</p:column>
</p:row>
<p:menubar style="margin-top:10px; min-width:1000px;max-width:1000px; font-size:12px ;">
<p:submenu label="Cadastro">
<p:menuitem value="Pacientes" url="http://www.google.com.br" />
<p:menuitem value="Usuário" url="#" />
<p:menuitem value="Médicos" url="#" />
</p:submenu>
<p:submenu label="Agenda">
<p:menuitem value="Médicos" url="http://www.google.com.br" />
<p:menuitem value="Pacientes" url="http://www.google.com.br" />
</p:submenu>
<p:submenu label="Ajuda">
<p:menuitem value="Suporte do Sistema" url="http://www.google.com.br"/>
<p:menuitem value="" url="http://www.google.com.br" />
</p:submenu>
<p:submenu label="Sobre Nós">
<p:menuitem value="Desenvolvedores" url="http://www.google.com.br" />
<p:menuitem value="Sobre o Agendadoc" url="http://www.google.com.br" />
</p:submenu>
<p:submenu label="Clientes">
<p:menuitem value="IBM" url="http://www.google.com.br" />
<p:menuitem value="VIVO" url="http://www.google.com.br" />
<p:menuitem value="T-Systems" url="http://www.google.com.br" />
<p:menuitem value="TAM" url="http://www.google.com.br" />
</p:submenu>
<p:submenu label="Fale Conosco">
<p:menuitem value="Trabalhe conosco" url="http://www.google.com.br" />
<p:menuitem value="Mande um Email" url="http://www.google.com.br" />
</p:submenu>
<p:submenu label="Paginas">
<p:menuitem value="INDEX" url="/index.jsf" />
<p:menuitem value="TesteLogoff" url="/testeLogoff.jsf" />
</p:submenu>
<p:menuitem value="Sair" url="#" icon="ui-icon ui-icon-power" />
</p:menubar>
<br/>
</h:form>
<br/>
<br/>
<p:dialog showEffect="explode" hideEffect="explode" modal="true" header="Enviar Audio:" height="auto" width="auto" widgetVar="uploadDialog" appendToBody="true" resizable="false">
<h:form id="formUploads" enctype="multipart/form-data" >
<p:panel id="panel" style="margin-bottom:10px; border: 0px;">
<p:fileUpload fileUploadListener="#{UploadAudio.upload}" update="@form" showButtons="false" label="Procurar..." auto="false" oncomplete="uploadDialog.hide();"/>
<p:growl id="popup" showDetail="true"/>
</p:panel>
</h:form>
</p:dialog>
<!-- FIM FORM CADASTRO -->
<h:form id="formTableMed">
<p:growl id="mensagens" showDetail="true"/>
<p:dataTable id="dtMedicos" var="medico" value="#{medicoController.medicoModel}" paginator="true" rows="10" rowKey="#{medico.idMedico}" selectionMode="single"
style="text-align: center; margin-top:10px; min-width:1050px; max-width:1050px;" >
<f:facet name="header">
Regras
</f:facet>
<p:column headerText="ID" sortBy="#{medico.idMedico}" style="min-width: 1px; font-size:11px ; max-width: 10px;" >
#{medico.idMedico}
</p:column>
<p:column headerText="Médico" sortBy="#{medico.nomeMedico}" style="min-width: 15px; font-size:11px ; max-width: 20px;" >
#{medico.nomeMedico}
</p:column>
<p:column headerText="Data Consulta" sortBy="#{medico.dataConsulta}" style="min-width: 1px; font-size:11px ; max-width: 23px;">
#{medico.dataConsulta}
</p:column>
<p:column headerText="Especialidade" sortBy="#{medico.especialidade}" style="min-width: 1px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column headerText="Paciente" sortBy="#{medico.idMedico}" style="min-width: 1px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column headerText="Endereço" sortBy="#{medico.idMedico}" style="min-width: 1px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column headerText="Cidade" sortBy="#{medico.idMedico}" style="min-width: 15px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column headerText="Email" sortBy="#{regra.opcao0}" style="min-width: 10px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column headerText="Telefone" sortBy="#{medico.idMedico}" style="min-width: 10px; font-size:11px ; max-width: 23px;">
#{medico.idMedico}
</p:column>
<p:column style="width:20px; font-size:11px;" >
<f:facet name="header">
<h:outputText value="Ação"/>
</f:facet>
<p:commandLink id="edit" update=":formTabelaMedicos:editar" oncomplete="editarMedicoDialog.show()" value="Editar" >
<f:setPropertyActionListener value="#{medico}" target="#{medicoController.selecaoMedicos}" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
<p:dialog id="edMedicoDialog" header="Editar Regra:" showEffect="clip"
hideEffect="explode" modal="false" widgetVar="editarMedicoDialog" appendToBody="true" resizable="false">
<h:form id="formTabelaMedicos">
<p:panelGrid id="editar" style="margin-top:10px;min-width:1000px;max-width:1000px;" >
<f:facet name="header">
<p:row>
<p:column colspan="14">Editar Regra #{medicoController.selecaoMedicos.idMedico}</p:column>
</p:row>
<p:row>
<p:column style="display:none">ID</p:column>
<p:column>ATIVA</p:column>
<p:column>DNIS</p:column>
<p:column>PERFIL</p:column>
<p:column>NATUREZA</p:column>
<p:column>SITUAÇÃO</p:column>
<p:column colspan="2">TMV</p:column>
<p:column>LOCUÇÃO</p:column>
<p:column>OP#0</p:column>
<p:column>OP#1</p:column>
<p:column>OP#2</p:column>
<p:column>OP#3</p:column>
<p:column>OP#4</p:column>
<p:column>OP#5</p:column>
</p:row>
<p:row>
<p:column style="display:none">
<p:inputText style="display:none" id="id" disabled="false" value="#{regrasController.selecaoRegra.id}" size="1"/>
</p:column>
<p:column>
<p:selectBooleanCheckbox id="ativa" value="#{regrasController.selecaoRegra.ativa}" />
</p:column>
<p:column >
<p:inputText id="dnis" value="#{regrasController.selecaoRegra.dnis}" size="10"/>
</p:column>
<p:column >
<p:selectOneMenu id="perfil" value="#{regrasController.selecaoRegra.perfil}" >
<f:selectItem itemLabel="" itemValue=""/>
<f:selectItem itemLabel="ISP" itemValue="ISP"/>
<f:selectItem itemLabel="EMP" itemValue="EMP"/>
</p:selectOneMenu>
</p:column>
<p:column >
<p:selectOneMenu id="natureza" value="#{regrasController.selecaoRegra.natureza}" >
<f:selectItem itemLabel="" itemValue=""/>
<f:selectItem itemLabel="PJ" itemValue="PJ"/>
<f:selectItem itemLabel="PF" itemValue="PF"/>
</p:selectOneMenu>
</p:column>
<p:column >
<p:selectOneMenu id="situacao" value="#{regrasController.selecaoRegra.situacao}">
<f:selectItem itemLabel="" itemValue=""/>
<f:selectItem itemLabel="ATA" itemValue="ATA"/>
<f:selectItem itemLabel="ATI" itemValue="ATI"/>
<f:selectItem itemLabel="CAM" itemValue="CAM"/>
<f:selectItem itemLabel="SUA" itemValue="SUA"/>
<f:selectItem itemLabel="SUF" itemValue="SUF"/>
<f:selectItem itemLabel="SUM" itemValue="SUM"/>
</p:selectOneMenu>
</p:column>
<p:column >
<p:selectOneMenu id="tmv" value="#{regrasController.selecaoRegra.tmv}">
<f:selectItem itemLabel="TODOS" itemValue="TODOS"/>
<f:selectItem itemLabel="MAIS QUE" itemValue="MAIS QUE"/>
<f:selectItem itemLabel="MENOS QUE" itemValue="MENOS QUE"/>
</p:selectOneMenu>
</p:column>
<p:column ><p:inputText id="tmv_txt" value="#{regrasController.tmv_txt}" size="5" /></p:column>
<p:column ><p:inputText id="locucao" value="#{regrasController.selecaoRegra.locucao}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao0}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao1}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao2}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao3}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao4}" /></p:column>
<p:column ><p:selectBooleanCheckbox value="#{regrasController.selecaoRegra.opcao5}" /></p:column>
</p:row>
</f:facet>
</p:panelGrid>
<br></br>
<h:panelGroup layout="block" style="white-space:nowrap; margin-top:15px;">
<p:separator/> <!--id="btnSubmit"-->
<p:commandButton value="OK" action="#{regrasController.editarRegra}" icon="ui-icon-disk" update="@('form')" onclick="editarRegraDialog.hide();">
<p:resetInput target="formTableTela" />
</p:commandButton>
<p:commandButton value="Cancel" type="button" onclick="editarRegraDialog.hide();"/>
</h:panelGroup>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>