2010-03-30 58 views
1

我正尝试使用Googlemaps taglib将Google地图添加到我的JSP中。JSP Googlemaps taglib找不到,我哪里出错了?

我已经添加到这个我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文件。

然后我把这个添加到我的标签库文件

<%@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 

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

+0

你是否在jsp中包含标签lib指令? – 2010-03-30 20:16:49

+0

是的,我把所有的taglib都放在一个单独的文件中,然后在我的jsps的顶部使用这个:'%% include file =“/ jsp/common/taglibs.jsp”%>' – Jimmy 2010-03-30 20:18:16

+0

提供< 2010-03-30 20:21:04

回答

2

通常当你这样做:

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

你基本上是想说“的文件夹/ WEB-INF /谷歌地图有一堆的使用.TAG文件” - 你不知道。

只是浏览的文件证实了这一点 - 它说,你应该使用这个(注意TLD扩展的使用):

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

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

1

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

+0

嗨,我刚刚尝试了您的建议,但它提供了与我的问题中发布相同的错误。谢谢 – Jimmy 2010-03-30 20:36:42

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还是爆炸。

+0

如果包含资源的JAR已经在classpath中(即'/ WEB-INF/lib'),则不需要提取。 – BalusC 2010-03-30 22:27:01

+0

那么如何解释'文件'/ WEB-INF/googlemaps“找不到'?这似乎是一些尝试。我同意不应该有必要,因为我没有为JSTL提取.tld,但是这个特例似乎是值得的。 JSTL URI是http;这是本地的应用程序。 – duffymo 2010-03-30 22:58:41