簡體   English   中英

具有Primefaces GMap OverlaySelect事件的ClassCastException

[英]ClassCastException with Primefaces GMap OverlaySelect event

我想在Gmap的infoWindow中顯示一些數據。 代碼如下:

<p:gmap center="#{mybean.latitude}, #{mybean.longitude}" zoom="15" 
                    type="ROADMAP" model="#{mybean.mymapModel}" >
        <p:ajax event="overlaySelect" listener="#{mybean.onMarkerSelect}" />  
        <p:gmapInfoWindow >  
            <div class="popup_title prem">Address:</div>
            <div class="popup_address">#{mybean.markerAll.street}, #{mybean.markerAll.zipcode} #{mybean.markerAll.city}</div>
        </p:gmapInfoWindow>  
</p:gmap>

和我的ManagedBean

public void onMarkerSelect(OverlaySelectEvent event) {
        marker = (Marker) event.getOverlay();
        markerAll = (myHelperClass) marker.getData();
    }

在我的本地計算機上,一切都可以正常進行開發。 單擊標記后,數據(地址)將顯示在infoWindow中。
在生產中,我看到很多ClassCastException例如:

FullAjaxExceptionHandler: An exception occurred during processing JSF ajax request. Error page '/error.jsf' will be shown.    
    java.lang.ClassCastException: java.lang.String cannot be cast 
        to com.mypackage.util.myHelperClass
        at com.mypackage.myBean.onMarkerSelect(myBean.java:416)
...
...

org.primefaces.model.map.Marker的屬性data的類型為Object而不是String

我究竟做錯了什么? 為何有時會奏效?

我正在使用Primefaces 5.3.7

我認為它缺少大寫字母m-MyHelperClass的myHelperClass

public void onMarkerSelect(OverlaySelectEvent event) {
    marker = (Marker) event.getOverlay();
    markerAll = (MyHelperClass) marker.getData();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM