我正在尝试使用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
我错过了一些简单的事吗?到目前为止,我无法发现我做错了什么..
答案 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还是爆炸。