4

我正在构建一个简单的 web 应用程序,它显示来自 GoogleMaps 的地图,其中包含从我的数据库加载的多个标记......但我无法让它呈现......

我正在使用 JSF 2 和 gmaps4jsf。

我的页面如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:m="http://code.google.com/p/gmaps4jsf/">

[...]
<m:map width="500px" latitude="10.1" longitude="10.1" height="500px" zoom="6" autoReshape="true">
    <ui:repeat var="loc" value="#{locs}">
        <m:marker latitude="#{loc.latitude}" longitude="#{loc.longitude}">
            <m:htmlInformationWindow htmlText="#{loc.latitude}-#{loc.longitude}" />
        </m:marker>
    </ui:repeat>
</m:map>
[...]

我从一个应该可以工作的示例中复制了代码......但我看不到地图。

我的类路径上有 gmaps4jsf-core-3.0.0.jar,我想我不需要配置其他任何东西......有什么想法吗?

编辑:似乎标签没有被识别。当我在浏览器中单击“查看源代码”时,gmaps 标签并未“翻译”,它们在我将它们写入 xhtml 文件时显示。

4

1 回答 1

4

如果您的标签没有被翻译,很可能是 jar 文件位于错误的位置。有些东西正在避免您的网络应用程序找到它。你是如何建造它的?

将最新的库 jar 放在您的 Web 应用程序WEB-INF/lib文件夹中。

您的m:map必须在h:form标签内。

由于您的库版本,您应该包含一个 javascript 代码:

<script type="text/javascript"
   src="https://maps.googleapis.com/maps/api/js?sensor=true">
</script> 

看看这个使用 gmaps4jsf2 库的简单示例

您是否首先使用非常基本的配置?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:m="http://code.google.com/p/gmaps4jsf/">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/template/base-template.xhtml">
    <ui:define name="js">
        <script type="text/javascript"
                src="https://maps.googleapis.com/maps/api/js?sensor=true">
        </script>
    </ui:define>
    <ui:define name="title">
        This is the new title
    </ui:define>
    <ui:define name="content">
        <h1>Simple Map with a marker and an InfoWindow</h1>

        <h:form id="form">
            <m:map width="500" height="450px" latitude="37.13" longitude="22.43" enableScrollWheelZoom="true">
                <m:marker>
                    <m:htmlInformationWindow htmlText="This is Sparta, Greece"/>
                </m:marker>
            </m:map>
        </h:form>
    </ui:define>
</ui:composition>
</html>

问候,

于 2013-05-22T09:10:03.413 回答