绑定 <p:gmap 组件不起作用 - Primefaces 3.4.1



我在应用程序中使用 p:gmap 组件,但是当我尝试使用绑定属性在 bean 中引用 GMap 时,它不起作用并且没有显示映射。

JSF 代码:

<p:gmap binding="#{mapBean.map}" center=" -26.9995, -49.686" zoom="11" type="ROADMAP" />

支持Bean代码:

public GMap getMap() {
    map = new GMap();
    map.setCenter("-26.9995, -49.686");
    map.setZoom(11);
    map.setType("ROADMAP");
    map.setModel(geoModel);
    map.setStyle("width:850px;height:450px");
    map.setWidgetVar("vMap");
    return map;
}

当我在没有绑定的情况下使用这个组件时,它工作正常......

Primefaces版本3.4.1;玻璃鱼 3.1.2.2

知道吗?

谢谢

我发现了与您相关的相同问题...当我使用绑定属性在托管 Bean 中引用 GMap 时,不会呈现映射。

我注意到文件 gmap.js 没有加载,因此 GMap 也没有被渲染。

我没有找到这个问题的原因,但我找到了解决它的方法,但不是一个优雅的方法。 :D

我在复制 gmap.js 到项目目录结构的文件系统后在我的 xhtml 文件中添加了这一行。

<h:head>
    ...
    <h:outputScript library="primefaces" name="gmap/gmap.js" />
    ...
</h:head>

希望对您有所帮助!祝你好运!:D

另一种方法是在 Backed Bean(或呈现这种情况的任何组件)上创建一个 GMap 实例,创建组件 xhml 视图,删除绑定 xhtml 属性并匹配两者的每个属性,如以下示例:

豆:

// #{viewBean}
private GMap googleMap;
@PostConstruct
public void onPostConstruct(){
    googleMap.setDisableDoubleClickZoom(Boolean.TRUE);
    googleMap.setScrollWheel(Boolean.FALSE);
    googleMap.setCenter(getMapCenterString());
    googleMap.setZoom(mapZoomLevel);
    googleMap.setType("NORMAL");
    googleMap.setFitBounds(Boolean.FALSE);
    // etc...
}
// getter and setter of googleMap

XHTML 视图:

<p:gmap id="gmap"
     center="#{viewBean.googleMap.center}" 
     zoom="#{viewBean.googleMap.zoom}"
     type="#{viewBean.googleMap.type}"
     model="#{viewBean.mapModel}"
     scrollWheel="#{viewBean.googleMap.scrollWheel}"
     disableDoubleClickZoom="#{viewBean.googleMap.disableDoubleClickZoom}"
     etc... />

因此,我们可以在背壳 bean 中保持对组件的控制。

虽然素数修复了这个错误。

相关内容

  • 没有找到相关文章

最新更新