0

使用素面 6.2

我有这个简单的代码:

<p:gmap center="50.848227, 4.356564" zoom="9" type="map" style="width:100%;height:600px" model="#{welcomePage.mapModel}">

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

</p:gmap>

在html页面的标题中:

<script src="http://maps.google.com/maps/api/js?key=*****" type="text/javascript"></script>

.

@WebPage
public class WelcomePage implements Serializable {

    private static final long serialVersionUID = -2444997383150958426L;

    @Getter
    @Setter
    MapModel mapModel;

    @PostConstruct
    public void init() {

        mapModel = new DefaultMapModel();

        ... add data to mapModel...

    }

    public void onMarkerSelect(OverlaySelectEvent event) {

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "test"));
    }
}

我不知道为什么,但永远不会触发 onMarkerSelect 方法。任何人都可以给我一个提示?我以前从未使用过 Gmap primefaces 组件。

4

1 回答 1

0

我们使用的是来自我们部门的另一个团队的默认页眉和页脚脚本。显然他们大量使用 jquery 脚本,我注意到在 Safari webinfo 窗口中使用了多个 jquery 版本。Primefaces 使用 jquery 插件 1.12.1,我们团队使用 1.11.0。似乎浏览器接受了这一切,JSF 没有产生任何错误并且 AJAX 请求被触发,但是由于 jquery 版本冲突,执行的脚本似乎默默地运行了一些与 Primefaces javascript 文件不兼容的代码。删除页眉和页脚脚本时,一切都按预期工作!

jQuery 的一个很好的功能当然是检测这种冲突并给出某种警告^^。我要求其他团队调查这个问题。结案。

于 2018-04-20T13:30:30.123 回答