2015-07-20 16 views
0

我有一個probleme在primeface 4.我有地圖,我想看到一個輸出面板,同時在地圖上的標記位置點擊Primefaces GMAP OverlaySelect事件和坡平了一個輸出面板,同時點擊

<p:gmap model="#{addMarkers.emptyModel}" id="gmap" streetView="false" navigationControl="true" mapTypeControl="true" draggable="true" center="26.959512, -12.821044" zoom="8" type="ROADMAP" style="width:100%;height:500px"> 
 
      <p:ajax event="overlaySelect" listener="#{addMarkers.onMarkerSelect}" id="open1" update="messages"/> 
 
      <p:gmapInfoWindow id="infoWindow"> 
 
      <p:outputPanel style="text-align: center; margin: auto"> 
 
       <p:commandButton ajax="true" type="button" value="open map" onclick="PF('dlg').show();" />

當我刷新頁面,問題似乎得到解決,令人驚訝,我得到我的輸出面板! 調試運行後,我發現,我在我的ManagedBeans一個小問題

public void onMarkerSelect(OverlaySelectEvent event) { 
    marker = (Marker) event.getOverlay(); 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "scanning the materials", "Site :"+ marker.getTitle())); 

} 

刷新前我得到:事件疊加類型是未知的和值爲NULL refereshing我越來越事件疊加類型是「後標記「和值是#440

回答

1

如果你仍然在這方面掙扎,我會建議檢查什麼時候使用MapModel構造函數。它應該在bean的字段本身或postInit函數的定義中完成,以確保它只會被調用一次,而不是在getter或類似的內部。例如:

@ManagedBean(name = EstablecimientoInstalacionesViewDetailBean.ID) 
@ViewScoped 
public class ViewDetailBean extends AbstractViewDetailBean { 

private final static MapModel mapModel = new DefaultMapModel(); 
[...] 
@Override 
protected void postInit() { 
    refreshMapModel(); 
} 
+0

我是做JAVA EE基於Web的應用程序來監視IT設備的X公司(服務器,防火牆,交換機,路由器......),它具有在不同的城市很多網站,我給他們的應用程序和他們沒有注意到這個小錯誤。 但是。如果我把構造函數放在getter中,我仍然不明白爲什麼它不起作用,但我只是在我的本地機器上嘗試過,現在它就像一個魅力一樣工作了! 非常感謝你!計劃在未來幾天向他們報告這個解決方案。再次感謝。 –

+0

它無法在getter中使用構造函數,因爲mapModel隨後會在每個請求上創建和銷燬。 –

相關問題