2016-10-05 11 views
1

私のコードでは、p:poll(primefaces)を持つxhmtlページがあります。 5秒ごとにpanelMap(私のパネル)が更新されます。地図が更新されると、それが3つのメッセージを鳴らす必要があります。問題は、それが3つ以上表示され、次に6つのメッセージが表示されることです。そして私は多くのdiffを試しました。方法とcouldnt解決する。p:polllを2回呼び出す

ビューが

<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メソッドの呼び出し時にgrowlが更新されているので、メタデータでこの行を取り出しました。それから、それは2回呼び出されています。 –

答えて

0

3件の3最初のメッセージが消えるようにするには、あなたのgrowlに人生を追加する必要が5秒前、そしてp:pollアップデート5秒後panelMapは、他の3件のメッセージが現れ、life="4500" (4500ミリ秒):

<p:growl id="growl" showDetail="false" sticky="true" life="4500" /> 
関連する問題