2016-10-05 3 views
1

В моем коде у меня есть страница xhmtl, которая имеет p: poll (primefaces). Каждые 5 секунд он обновляет панельMap (моя панель). Когда карта обновляется, она должна показывать 3 сообщения с рычанием, проблема в том, что она показывает больше 3, затем я получаю 6 сообщений. И я попробовал много разных. пути и не смогли разрешить.p: опрос, вызывающий рычание дважды

вид

<ui:composition template="/WEB-INF/template/Layout.xhtml" 
    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" xmlns:o="http://omnifaces.org/ui"> 

    <title>Monitoramento</title> 
    <f:metadata> 

     <f:event listener="#{gadoBean.obterPosicaoTag}" type="preRenderView" /> 
    </f:metadata> 

    <ui:define name="corpo"> 
     <script 
      src="https://maps.googleapis.com/maps/api/js?key="mykey" 
      type="text/javascript"></script> 
     <h:form prependId="false"> 
      <h:panelGrid columns="3"> 
       <p:poll interval="5" listener="#{gadoBean.obterPosicaoTag}" 
        update="panelMap" /> 
       <p:button value="Adicionar Pasto" outcome="/area/criarArea.xhtml" /> 
       <p:button value="Mudar animal de pasto" 
        outcome="/propriedade/mudarAnimal.xhtml" /> 
      </h:panelGrid> 

      <p:panel id="panelMap" header="Monitoramento" 
       footer="clique sobre o pasto desejado para obter suas informações" 
       style="margin-top:30px;margin-left:230px;width:700px;max-width:100%;height:450px;max-height:100%"> 
       <p:growl id="growl" showDetail="false" sticky="true" /> 

       <p:gmap id="mapa" center="#{gadoBean.center}" zoom="17" 
        model="#{gadoBean.mapa}" type="HYBRID" 
        style="width:862px;height:400px;max-width:100%;max-height:100%"> 
        <p:ajax event="pointSelect" 
         listener="#{gadoBean.aoSelecionarPonto}" update="growl" /> 
       </p:gmap> 

      </p:panel> 
     </h:form> 
    </ui:define> 
</ui:composition> 
+0

Это работает? –

+0

это не сработало:/ –

+0

Я нашел решение! Я вынул эту строку в метаданных , потому что во время вызова метода obterPosicaoTag выполняется обновление. Затем его вызывают дважды. –

ответ

0

Вы должны добавить жизнь в ваш growl, так что 3 три первые сообщения исчезнуть до 5 секунд, а затем, когда p:poll обновления panelMap через 5 секунд, еще 3 сообщения появляется, life="4500" (4500 миллисекунд):

<p:growl id="growl" showDetail="false" sticky="true" life="4500" />