2010-03-30 54 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