1

我正在尝试使用 Googlemaps taglib 将 Google Maps 添加到我的 JSP 中。

我已将此添加到我的 maven pom 中

    <dependency>
        <groupId>com.lamatek</groupId>
        <artifactId>googlemaps</artifactId>
        <version>0.98c</version>
        <scope>provided<>/scope
    </dependency>

然后这包括googlemaps-0.98c我在 NetBeans 中的项目库下的库,我右键单击并选择Manually install artifact并找到我下载的 googlemaps.jar 文件。

然后我将其添加到我的 taglibs 文件中

<%@taglib prefix="googlemaps" uri="/WEB-INF/googlemaps" %>

然后将其包含在我真正想在我的jsp上显示地图的地方

    <googlemaps:map id="map" width="250" height="300" version="2" type="STREET"
                    zoom="12">
        <googlemaps:key domain="localhost" key="xxxx"/>
        <googlemaps:point id="point1" address="74 Connors Lane" city="Elkton"
                          state="MD" zipcode="21921" country="US"/>
        <googlemaps:marker id="marker1" point="point1"/>
    </googlemaps:map>

但是当我加载我的应用程序时,我收到以下错误。

org.apache.jasper.JasperException: /jsp/dashboard.jsp(1,1) /jsp/common/taglibs.jsp(6,56) PWC6117: File "/WEB-INF/googlemaps" not found

root cause

org.apache.jasper.JasperException: /jsp/common/taglibs.jsp(6,56) PWC6117: File "/WEB-INF/googlemaps" not found

我错过了一些简单的事情吗?到目前为止,我无法发现我做错了什么..

4

3 回答 3

2

通常当你这样做时:

<%@taglib prefix="googlemaps" uri="/WEB-INF/googlemaps" %>

你基本上是想说“文件夹 /WEB-INF/googlemaps 有一堆 .tag 文件可供使用” - 你没有。

只需浏览文档即可确认这一点 - 它说您应该使用它(注意 tld 扩展名的用法):

<%@ taglib uri="/WEB-INF/googlemaps.tld" prefix="googlemaps" %> 

来源:http ://www.lamatek.com/GoogleMaps/documentation.jsp#installation

于 2010-03-30T21:43:36.500 回答
1

URI 不应为 /WEB-INF/googlemaps.tld。它应该与<uri>googlemaps.tld 中标记中的值匹配。

打开 googlemaps.jar,找到 googlemaps.tld,然后找到<uri>标签。这就是您需要的 URI。

更新:

我刚刚下载了 googlemaps.jar。我错了;URI 确实是<uri>/WEB-INF/googlemaps.tld</uri>.

这表明您必须提取 googlemaps.tld 文件并将其放在 Web 上下文中的 /WEB-INF 下,无论是 WAR 还是爆炸。

于 2010-03-30T22:04:33.347 回答
1

如果您在 pom 中将范围设置为提供,则它不会包含在 war 文件中,并且不会找到 taglib。您应该将范围更改为编译或运行时。

于 2010-03-30T20:23:52.670 回答