gpt4 book ai didi

java - NullPointer 与 Primefaces GMap OverlaySelect 事件

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:51 24 4
gpt4 key购买 nike

我对版本为 3.0.M3 的 Primefaces 有疑问。我使用了 gmap 和 prime p:ajax。我想做的是当用户在 Gmap 上点击标记时获得点击标记。

这是代码

<p:tabView effect="slide" effectDuration="normal" style="width:1050px;height:450px" >
<p:tab title="blabla">
<h:panelGrid colums="1">
</h:panelGrid>
</p:tab>
<p:tab title="blabla" >
<h:panelGrid colums="1">
<h:form id="mapId">

<p:gmap id="asd" center="39.000409,35.201554"
zoom="#{mapBean.modelMap.zoomLevel}"
type="ROADMAP"
style="width:1000px;height:400px"
model="#{mapBean.emptyModel}"
widgetVar="map" >

<p:ajax event="overlaySelect" listener="#{mapBean.onMarkerSelect}"/>

</p:gmap>

</h:form>
</h:panelGrid>
</p:tab></p:tabView>

和我的 ManagedBean

public void onMarkerSelect(OverlaySelectEvent event) {  

Marker marker = (Marker) event.getOverlay();
if (marker!=null) {
System.out.println(marker.getId());
}
System.out.println("Clicked");
modelMap.setZoomLevel(modelMap.getZoomLevel()+1);

}

托管 Bean 声明

@ManagedBean(name="mapBean")
@RequestScoped
public class MapBean implements Serializable

我在 onMarkerSelect 方法中使用 NullPointerException。(event.getOverlay();)

最佳答案

解决了我的问题。

问题是当创建 MapModel 时,它是一个本地变量:

public MapModel getModel() {

final MapModel mapModel = new DefaultMapModel(); // this should be a field

final Set<MapEventDto> events = service.loadEvents();
for (MapEventDto event : events) {

final double latitude = event.getLatitude().doubleValue();
final double longitude = event.getLongitude().doubleValue();
final String magnitude = event.getMagnitude().toString();

final String title = "Id: " + event.getId() + ", Lat: " + latitude + ", Lng: " + longitude + ", Mag: " + magnitude;

mapModel.addOverlay(new Marker(new LatLng(latitude, longitude), title));

}
return mapModel;
}

整个 mapModel 可以在 map 渲染后被垃圾回收(因为不再需要)。因此,当调用覆盖事件时,将不再有 mapModel

一旦我将 mapModel 设为 Bean 的字段,问题就消失了。

关于java - NullPointer 与 Primefaces GMap OverlaySelect 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com