将Number转换为int?找到不兼容的类型:void required:int

时间:2011-11-07 09:37:02

标签: java javascript jsp google-maps

我正在编写一个应用程序,使用java和javascript获取谷歌地图中某个位置的纬度,经度。

以下代码部分给出错误:

代码(它是jsp文件的一部分):

<script type="text/javascript">
  var map;

  //Initialization & some more code goes here

  function centerChanged() {
    <%
        int lat=0,lng=0;
        lat=%>map.getCenter().lat();<%
        lng=%>map.getCenter().lng();<%
        //request.setAttribute("lat", lat);
        //request.setAttribute("lng", lng);
    %>    
  }

从上面的代码中,这些是导致错误的两行:

    lat=%>map.getCenter().lat();<%
    lng=%>map.getCenter().lng();<%

其他信息:

map.getCenter().lat()&lt;&lt;这将返回google maps API中提到的数字:

这是我得到的错误:

  

org.apache.jasper.JasperException:PWC6033:Javac编译出错   对于JSP

     

PWC6197:jsp文件中的第81行:/maptest.jsp发生错误   PWC6199:生成的servlet错误:string:///maptest_jsp.java:127:   找到不兼容的类型:void required:int

     

PWC6197:jsp文件中的第82行:/maptest.jsp发生错误   PWC6199:生成的servlet错误:string:///maptest_jsp.java:130:   找到不兼容的类型:void required:int

任何人都可以告诉我有什么问题吗?

2 个答案:

答案 0 :(得分:1)

如果您尝试获取双倍(数据类型)格式的纬度和经度,则将其向下转换为整数。

int xTemp = (int) (tempLatitude);

int yTemp = (int) (tempLong);

并设置中心,您可以使用 -

map.setCenter(); method.

希望我能理解你的问题。

答案 1 :(得分:1)

您正尝试将Javascript中的值动态插入到JSP中。错误是JSP在服务器端执行,而Javascript在客户端执行。

你在那里写的等同于Java代码:

out.write("function centerChanged() {");
int lat=0,lng=0;
lat=;
out.write("map.getCenter().lat();");
lng=;
out.write("map.getCenter().lng();");
//request.setAttribute("lat", lat);
//request.setAttribute("lng", lng);
out.write("}");

得到它?无论被&lt; %%&gt;包围的是什么

是纯Java代码,不管是什么,都是打印出来的

要解决此问题,您需要更改在服务器端JSP代码中检索客户端Javascript值的逻辑。