Pessoal,
Tenho um template com um <p:menuBar> do primefaces. Quando eu ativei o ajax dos p:menuitens para chamar um gif (tipo loading) ele começou a dar um probleminha de navegação. Quando eu clico em um menu a primeira vez ele chama a pagina normalmente, quando eu tento mudar de pagina (chamar outro link do menu) ele não vai na primeira vez, somente quando eu clico a segunda vez é que ele vai.
Alguem sabe por quê?
Sds,
Maurício.
Pode postar o código da página? Quem sabe eu possa ajudar.
Este é o templete com o menu...
<?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"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><ui:insert name="title">Default Title</ui:insert></title>
<h:outputStylesheet name="css/jsfcrud.css"/>
</h:head>
<h:body>
<div>
<center>
<h:graphicImage library="images" name="topo_site.jpg" width="774" height="196" alt="topo" />
</center>
</div>
<f:view>
<h:form styleClass="jsfcrud_list_form">
<center>
<h:panelGrid width="774">
<p:growl id="messages"/>
<p:menubar autoDisplay="true">
<p:submenu label="Cadastros" >
<p:menuitem value="Comunicação" ajax="true" action="#{comunicacaoController.prepareCreate()}" />
<p:menuitem value="Empresa" ajax="true" action="#{empresaController.prepareCreate()}" />
<p:menuitem value="Equipamentos" ajax="true" action="#{equipamentosController.prepareCreate()}" />
<p:menuitem value="Regional" ajax="true" action="#{regionalController.prepareCreate()}" />
<p:menuitem value="Tipos de Equipamentos" ajax="true" action="#{tipoeqController.prepareCreate()}" />
<p:menuitem value="Acessorios" ajax="true" action="#{acessorioController.prepareCreate()}" />
<p:menuitem value="Chips" ajax="true" action="#{chipController.prepareCreate()}"/>
<p:menuitem value="Endereço" ajax="true" action="#{enderecoController.prepareCreate()}" />
<p:menuitem value="Usuários" ajax="true" action="#{usuariosController.prepareCreate()}" />
</p:submenu>
<p:submenu label="Consultas" >
<p:submenu label="Consultar equipamento">
<p:menuitem value="Listar todos" ajax="true" action="/crud/equipamentos/List" />
<p:menuitem value="Consultar por código" ajax="true" action="/crud/equipamentos/ConsultaCodigo"/>
<p:menuitem value="Consultar por equipamento" ajax="true" action="/crud/equipamentos/Consulta"/>
<p:menuitem value="Consultar por regional" ajax="true" action="/crud/equipamentos/ConsultaRegional"/>
<p:menuitem value="Consultar por tipo de comunicação" ajax="true" action="/crud/equipamentos/ConsultaComunicacao"/>
<p:menuitem value="Consultar por empresa" ajax="true" action="/crud/equipamentos/ConsultaEmpresa"/>
</p:submenu>
<p:submenu label="Consultar Acessório">
<p:menuitem value="Litar todos" ajax="true" action="/crud/acessorio/List"/>
<p:menuitem value="Consutar por IMEI" ajax="true" />
<p:menuitem value="Consutar por Número de Serie" ajax="true" />
</p:submenu>
<p:submenu label="Consultar Chip">
<p:menuitem value="Listar todos" ajax="true" action="/crud/chip/List"/>
<p:menuitem value="Consultar por ICCID" ajax="true" />
<p:menuitem value="Consultar por Equipamento" ajax="true" />
<p:menuitem value="Consultar por Acessório (IMEI)" ajax="true" />
</p:submenu>
<p:menuitem value="Consultar rota para equipamento" ajax="true" />
</p:submenu>
<p:submenu label="Relatórios" >
<p:submenu label="Disponibilidade">
<p:menuitem value="Religadores GPRS" ajax="true" action="/crud/indSemanalRlGPRS/List"/>
<p:menuitem value="Religadores RÁDIO" ajax="true" action="/crud/indSemanalRLRadio/List"/>
<p:menuitem value="Reguladores GPRS" ajax="true" action="/crud/indSemanalRGGPRS/List"/>
<p:menuitem value="Reguladores RÁDIO" ajax="true" action="/crud/indSemanalRGRADIO/List"/>
<p:menuitem value="Sinalizadores GPRS" ajax="true" action="/crud/indSemanalSFGPRS/List"/>
<p:menuitem value="Sinalizadores RÁDIO" ajax="true" action="/crud/indSemanalSFRadio/List"/>
</p:submenu>
</p:submenu>
</p:menubar>
</h:panelGrid>
</center>
</h:form>
<p:ajaxStatus style="width:208px;height:172px;position:fixed;right:350px;top:150px">
<f:facet name="start">
<p:graphicImage library="images" name="loadingcolor2.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</f:view>
<center>
<h1>
<ui:insert name="title">Default Title</ui:insert>
</h1>
<p>
<ui:insert name="body">Default Body</ui:insert>
</p>
</center>
</h:body>
</html>
Sds,
Maurício.
E ai guilherme, alguma luz?
Sds,
Maurício.
Este é o templete com o menu...
<?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"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><ui:insert name="title">Default Title</ui:insert></title>
<h:outputStylesheet name="css/jsfcrud.css"/>
</h:head>
<h:body>
<div>
<center>
<h:graphicImage library="images" name="topo_site.jpg" width="774" height="196" alt="topo" />
</center>
</div>
<f:view>
<h:form styleClass="jsfcrud_list_form">
<center>
<h:panelGrid width="774">
<p:growl id="messages"/>
<p:menubar autoDisplay="true">
<p:submenu label="Cadastros" >
<p:menuitem value="Comunicação" ajax="true" action="#{comunicacaoController.prepareCreate()}" />
<p:menuitem value="Empresa" ajax="true" action="#{empresaController.prepareCreate()}" />
<p:menuitem value="Equipamentos" ajax="true" action="#{equipamentosController.prepareCreate()}" />
<p:menuitem value="Regional" ajax="true" action="#{regionalController.prepareCreate()}" />
<p:menuitem value="Tipos de Equipamentos" ajax="true" action="#{tipoeqController.prepareCreate()}" />
<p:menuitem value="Acessorios" ajax="true" action="#{acessorioController.prepareCreate()}" />
<p:menuitem value="Chips" ajax="true" action="#{chipController.prepareCreate()}"/>
<p:menuitem value="Endereço" ajax="true" action="#{enderecoController.prepareCreate()}" />
<p:menuitem value="Usuários" ajax="true" action="#{usuariosController.prepareCreate()}" />
</p:submenu>
<p:submenu label="Consultas" >
<p:submenu label="Consultar equipamento">
<p:menuitem value="Listar todos" ajax="true" action="/crud/equipamentos/List" />
<p:menuitem value="Consultar por código" ajax="true" action="/crud/equipamentos/ConsultaCodigo"/>
<p:menuitem value="Consultar por equipamento" ajax="true" action="/crud/equipamentos/Consulta"/>
<p:menuitem value="Consultar por regional" ajax="true" action="/crud/equipamentos/ConsultaRegional"/>
<p:menuitem value="Consultar por tipo de comunicação" ajax="true" action="/crud/equipamentos/ConsultaComunicacao"/>
<p:menuitem value="Consultar por empresa" ajax="true" action="/crud/equipamentos/ConsultaEmpresa"/>
</p:submenu>
<p:submenu label="Consultar Acessório">
<p:menuitem value="Litar todos" ajax="true" action="/crud/acessorio/List"/>
<p:menuitem value="Consutar por IMEI" ajax="true" />
<p:menuitem value="Consutar por Número de Serie" ajax="true" />
</p:submenu>
<p:submenu label="Consultar Chip">
<p:menuitem value="Listar todos" ajax="true" action="/crud/chip/List"/>
<p:menuitem value="Consultar por ICCID" ajax="true" />
<p:menuitem value="Consultar por Equipamento" ajax="true" />
<p:menuitem value="Consultar por Acessório (IMEI)" ajax="true" />
</p:submenu>
<p:menuitem value="Consultar rota para equipamento" ajax="true" />
</p:submenu>
<p:submenu label="Relatórios" >
<p:submenu label="Disponibilidade">
<p:menuitem value="Religadores GPRS" ajax="true" action="/crud/indSemanalRlGPRS/List"/>
<p:menuitem value="Religadores RÁDIO" ajax="true" action="/crud/indSemanalRLRadio/List"/>
<p:menuitem value="Reguladores GPRS" ajax="true" action="/crud/indSemanalRGGPRS/List"/>
<p:menuitem value="Reguladores RÁDIO" ajax="true" action="/crud/indSemanalRGRADIO/List"/>
<p:menuitem value="Sinalizadores GPRS" ajax="true" action="/crud/indSemanalSFGPRS/List"/>
<p:menuitem value="Sinalizadores RÁDIO" ajax="true" action="/crud/indSemanalSFRadio/List"/>
</p:submenu>
</p:submenu>
</p:menubar>
</h:panelGrid>
</center>
</h:form>
<p:ajaxStatus style="width:208px;height:172px;position:fixed;right:350px;top:150px">
<f:facet name="start">
<p:graphicImage library="images" name="loadingcolor2.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</f:view>
<center>
<h1>
<ui:insert name="title">Default Title</ui:insert>
</h1>
<p>
<ui:insert name="body">Default Body</ui:insert>
</p>
</center>
</h:body>
</html>
Sds,
Maurício.
[/quote]
Boa noite Maurício,
Seguem algumas sugestões que eu faço para você, como também já tive problemas com o <p:menuitem>.
Tente colocar o seguinte código dentro de <h:form styleClass=“jsfcrud_list_form”>:
<p:ajaxStatus onstart="dlg.show();" oncomplete="dlg.hide();" />
<p:dialog widgetVar="dlg" resizable="false" closable="false" modal="true" appendToBody="true" draggable="false" minimizable="true"
maximizable="false" >
<h:graphicImage library="images" name="loadingcolor2.gif" />
</p:dialog>
Você pode tirar essa parte dai:
<p:ajaxStatus style="width:208px;height:172px;position:fixed;right:350px;top:150px">
<f:facet name="start">
<p:graphicImage library="images" name="loadingcolor2.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
Fiz um teste aqui e funcionou, tenta ai e me diga se deu certo.
Este é o templete com o menu...
<?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"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><ui:insert name="title">Default Title</ui:insert></title>
<h:outputStylesheet name="css/jsfcrud.css"/>
</h:head>
<h:body>
<div>
<center>
<h:graphicImage library="images" name="topo_site.jpg" width="774" height="196" alt="topo" />
</center>
</div>
<f:view>
<h:form styleClass="jsfcrud_list_form">
<center>
<h:panelGrid width="774">
<p:growl id="messages"/>
<p:menubar autoDisplay="true">
<p:submenu label="Cadastros" >
<p:menuitem value="Comunicação" ajax="true" action="#{comunicacaoController.prepareCreate()}" />
<p:menuitem value="Empresa" ajax="true" action="#{empresaController.prepareCreate()}" />
<p:menuitem value="Equipamentos" ajax="true" action="#{equipamentosController.prepareCreate()}" />
<p:menuitem value="Regional" ajax="true" action="#{regionalController.prepareCreate()}" />
<p:menuitem value="Tipos de Equipamentos" ajax="true" action="#{tipoeqController.prepareCreate()}" />
<p:menuitem value="Acessorios" ajax="true" action="#{acessorioController.prepareCreate()}" />
<p:menuitem value="Chips" ajax="true" action="#{chipController.prepareCreate()}"/>
<p:menuitem value="Endereço" ajax="true" action="#{enderecoController.prepareCreate()}" />
<p:menuitem value="Usuários" ajax="true" action="#{usuariosController.prepareCreate()}" />
</p:submenu>
<p:submenu label="Consultas" >
<p:submenu label="Consultar equipamento">
<p:menuitem value="Listar todos" ajax="true" action="/crud/equipamentos/List" />
<p:menuitem value="Consultar por código" ajax="true" action="/crud/equipamentos/ConsultaCodigo"/>
<p:menuitem value="Consultar por equipamento" ajax="true" action="/crud/equipamentos/Consulta"/>
<p:menuitem value="Consultar por regional" ajax="true" action="/crud/equipamentos/ConsultaRegional"/>
<p:menuitem value="Consultar por tipo de comunicação" ajax="true" action="/crud/equipamentos/ConsultaComunicacao"/>
<p:menuitem value="Consultar por empresa" ajax="true" action="/crud/equipamentos/ConsultaEmpresa"/>
</p:submenu>
<p:submenu label="Consultar Acessório">
<p:menuitem value="Litar todos" ajax="true" action="/crud/acessorio/List"/>
<p:menuitem value="Consutar por IMEI" ajax="true" />
<p:menuitem value="Consutar por Número de Serie" ajax="true" />
</p:submenu>
<p:submenu label="Consultar Chip">
<p:menuitem value="Listar todos" ajax="true" action="/crud/chip/List"/>
<p:menuitem value="Consultar por ICCID" ajax="true" />
<p:menuitem value="Consultar por Equipamento" ajax="true" />
<p:menuitem value="Consultar por Acessório (IMEI)" ajax="true" />
</p:submenu>
<p:menuitem value="Consultar rota para equipamento" ajax="true" />
</p:submenu>
<p:submenu label="Relatórios" >
<p:submenu label="Disponibilidade">
<p:menuitem value="Religadores GPRS" ajax="true" action="/crud/indSemanalRlGPRS/List"/>
<p:menuitem value="Religadores RÁDIO" ajax="true" action="/crud/indSemanalRLRadio/List"/>
<p:menuitem value="Reguladores GPRS" ajax="true" action="/crud/indSemanalRGGPRS/List"/>
<p:menuitem value="Reguladores RÁDIO" ajax="true" action="/crud/indSemanalRGRADIO/List"/>
<p:menuitem value="Sinalizadores GPRS" ajax="true" action="/crud/indSemanalSFGPRS/List"/>
<p:menuitem value="Sinalizadores RÁDIO" ajax="true" action="/crud/indSemanalSFRadio/List"/>
</p:submenu>
</p:submenu>
</p:menubar>
</h:panelGrid>
</center>
</h:form>
<p:ajaxStatus style="width:208px;height:172px;position:fixed;right:350px;top:150px">
<f:facet name="start">
<p:graphicImage library="images" name="loadingcolor2.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</f:view>
<center>
<h1>
<ui:insert name="title">Default Title</ui:insert>
</h1>
<p>
<ui:insert name="body">Default Body</ui:insert>
</p>
</center>
</h:body>
</html>
Sds,
Maurício.
[/quote]
Boa noite Maurício,
Seguem algumas sugestões que eu faço para você, como também já tive problemas com o <p:menuitem>.
Tente colocar o seguinte código dentro de <h:form styleClass=“jsfcrud_list_form”>:
<p:ajaxStatus onstart="dlg.show();" oncomplete="dlg.hide();" />
<p:dialog widgetVar="dlg" resizable="false" closable="false" modal="true" appendToBody="true" draggable="false" minimizable="true"
maximizable="false" >
<h:graphicImage library="images" name="loadingcolor2.gif" />
</p:dialog>
Você pode tirar essa parte dai:
<p:ajaxStatus style="width:208px;height:172px;position:fixed;right:350px;top:150px">
<f:facet name="start">
<p:graphicImage library="images" name="loadingcolor2.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
Fiz um teste aqui e funcionou, tenta ai e me diga se deu certo.[/quote]
Velho, testei aqui mas continuou dando o mesmo problema…
Será que tem alguma coisa haver com o fato do <p:menu> estar no template? Tem algum problema nisso?
Senhores,
Resolvi da seguinte forma: Limpei tudo quanto era cache dos navegadores (IE, FF, CHROME). Depois atualizei o PrimeFaces de 3.4 para 3.5.
Sds,
Maurício.