【问题标题】:ClassCastException with Primefaces GMap OverlaySelect event带有 Primefaces GMap OverlaySelect 事件的 ClassCastException
【发布时间】:2016-11-30 17:22:44
【问题描述】:

我想在 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();
    }

在我的本地计算机上的开发中一切正常。单击标记时,数据(地址)显示在信息窗口中。
在制作过程中,我看到很多 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

【问题讨论】:

  • 我真的不能告诉你为什么它的行为不一致,但是有什么东西反对在你投射之前检查if(marker.getData() instanceof myHelperClass)吗?
  • 你检查过字符串包含的内容吗?您(并且只有您)可以检查自己的所有简单事情
  • 日志记录按预期返回com.mypackage.util.MyHelperClass@47535504。它不返回字符串。这就是我在这里报告的原因。

标签: jsf primefaces classcastexception primefaces-gmap


【解决方案1】:

我认为它缺少大写字母 m - MyHelperClass 的 myHelperClass

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

【讨论】:

  • :-)...然后应用程序甚至无法编译...而且有时无法正常工作,而在其他情况下则无法正常工作。虽然在java中不常见,但是以小写开头的类名在技术上并没有错\
  • @Kukeltje,很奇怪。这只是一个错字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多