【问题标题】:Primefaces GMap OverlaySelect event and poping up an output panel while clickingPrimefaces GMap Overlay Select 事件并在单击时弹出一个输出面板
【发布时间】:2015-07-20 14:28:12
【问题描述】:

我在 primeface 4 中遇到问题。我有一张地图,我想在点击地图中的标记位置时看到一个输出面板

<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 引用后我得到事件覆盖类型为“标记”,值为 #440

【问题讨论】:

    标签: javascript jsf jakarta-ee primefaces xhtml


    【解决方案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();
    }
    

    【讨论】:

    • 我正在做基于 JAVA EE 网络的应用程序来监控一家 X 公司的 IT 设备(服务器、防火墙、交换机、路由器...),该公司在不同城市有许多站点,我给了他们应用程序 &他们没有注意到这个小错误。然而。我仍然不明白为什么如果我将构造函数放在吸气剂中它不起作用,但我只是在我的本地机器上尝试过,不知何故这现在就像一个魅力!太感谢了 !计划在接下来的几天内向他们报告此解决方案。再次感谢。
    • 它不适用于 getter 中的构造函数,因为 mapModel 会在每次请求时创建和销毁。
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    相关资源
    最近更新 更多