没有找到JSP Googlemaps taglib,哪里出错了?

时间:2010-03-30 20:14:41

标签: java jsp google-maps netbeans taglib

我正在尝试使用Googlemaps标记库将Google地图添加到我的JSP中。

我已将此添加到我的maven pom

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

这包括我在NetBeans中的项目库下的googlemaps-0.98c库,我右键单击并选中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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

打开googlemaps.jar,找到googlemaps.tld,然后找到<uri>标记。那是你需要的URI。

更新:

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

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