0

アプリケーションで 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

何か案が?

ありがとう


AngelScript は、アプリケーションに組み込むことを目的とした、無料でオープン ソースの柔軟なクロスプラットフォーム スクリプト ライブラリです。目的は、強力で使いやすいライブラリを提供することですが、めったに使用されない大量の機能によって圧迫されることはありません。

4

2 に答える 2

3

あなたに関連する同じ問題が見つかりました...バインディング属性を使用してマネージド Bean で GMap を参照すると、マップがレンダリングされません。

ファイル gmap.js がロードされていないことに気付きました。このため、GMap もレンダリングされていません。

この問題の原因を突き止めることはできませんでしたが、解決する方法を見つけましたが、エレガントな方法ではありません。:D

プロジェクトのディレクトリ構造のファイル システムに gmap.js をコピーした後、この行を xhtml ファイルに追加しました。

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

これがお役に立てば幸いです。幸運を!:D

于 2013-03-08T13:21:32.400 に答える
0

別の方法として、次の例のように、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 でコンポーネントの制御を維持できます。

プライムフェイスはこのバグを修正しますが。

于 2016-10-13T15:06:50.740 に答える