我正在尝试将google map api实现到我的一个由jsp文档生成的网页中,我无法让它工作。我在www.lamatek.com/GoogleMaps上找到了一些jsp标签库,但它似乎没有用。(我的意思是,甚至他们网站上的例子都不起作用)
有没有人在jsp文档中完成谷歌地图的工作?我真的可以使用一些帮助或建议。(看起来像jsp docuemnt和javascript只是不相处)
p.s我可以获得静态谷歌地图工作,但这不是我的客户想要的。
答案 0 :(得分:0)
这实际上不是JSP问题。问题出在其他地方。也许这只是你自己对JSP的无知。你需要意识到JSP不过是服务器端视图技术,它提供了一个用于编写HTML / CSS / JS的模板。用通常的方式编写“普通的vanila”HTML / CSS / JS是完全没错的。一个JSP文件。除非您想要动态控制页面流或输出,或者想要用一个小标签替换重复/重复的代码块,否则不需要Taglib。可以使用表达式语言访问后端数据。
(好像jsp docuemnt和javascript只是不相处)
如果您的实际问题是JSP和JS之间的“通信”,那么您需要再次意识到Java / JSP基本上在服务器机器上运行,只需生成一个HTML页面(内置CSS / JS)并发送它到客户端。反过来,JS只在客户端机器上运行,并且没有从JSP中看到任何内容。您可以使用JSP动态生成JS函数/变量。您可以使用JS向服务器端发出(a)同步HTTP请求,从而可以执行某些Java代码。要获得更多见解和示例,您可能会发现this article非常有用。
p.s我可以获得静态谷歌地图工作,但这不是我的客户想要的。
首先,只需将该静态.html
文件重命名为动态.jsp
文件,它仍然有效;)您不需要特定的taglib。如果要动态输出/呈现HTML / CSS / JS,请使用流控制标记,如JSTL核心。如果要动态访问后端数据,请使用EL。
答案 1 :(得分:0)
我设法让lamatek标记库工作,但是我必须先修复一个错误,你可以下载源代码,修复bug(见下文)并创建googlemaps.jar文件。
Google地图小组似乎已更改为地图类型常量:
旧的/新的 G_HYBRID_TYPE / G_HYBRID_MAP在文件com / lamatek / tags / google / GoogleMapTag.java中更改行928,931和934,替换上述常量。
//com.lamatek.tags.google.GoogleMapTag lines 927 - 935
if (type.equalsIgnoreCase("hybrid")) {
out.println("\t\t" + id + ".setMapType(G_HYBRID_MAP);");
}
else if (type.equalsIgnoreCase("satellite")) {
out.println("\t\t" + id + ".setMapType(G_SATELLITE_MAP);");
}
else {
out.println("\t\t" + id + ".setMapType(G_NORMAL_MAP);");
}
应该这样做!
根据请求,here is the jar file。(使用JDK 1.6构建)
/BjörnDarri