GmapのinfoWindow内にいくつかのデータを表示したいと思います。ClassCastException Primefacesを使用GMap OverlaySelectイベント
<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>
とマイ
public void onMarkerSelect(OverlaySelectEvent event) {
marker = (Marker) event.getOverlay();
markerAll = (myHelperClass) marker.getData();
}
ManagedBeanすべては私のローカルコンピュータ上の開発で正常に動作している:コードは以下の通りです。マーカーがクリックされると、データ(アドレス)がインフォウインドウに表示されます。
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
:生産で
は、私のようなClassCastException
の多くを参照してください!
私は間違っていますか?なぜこれはいつか動作し、時には動作しないのですか?私はPrimefaces 5.3.7
を私は本当に、なぜそのは、一貫性のない行動を伝えることはできませんが、何かがそこにありますあなたがキャストする前に 'if(marker.getData()instanceof myHelperClass)'をチェックすることに反対していますか? –
そして文字列に含まれる内容を確認しましたか?あなただけの(そしてあなただけの)すべてがあなた自身をチェックすることができます。 – Kukeltje
ロギングは期待通りに戻ります。com.mypackage.util.MyHelperClass @ 47535504'。文字列を返しません。これが私がここでこれを報告している理由です。 – codyLine