Конвертировать число в int?найдены несовместимые типы: void требуется: int - PullRequest
1 голос
/ 07 ноября 2011

Я пишу приложение для получения широты, долготы позиции на карте Google, используя java и javascript.

В приведенной ниже части кода выдается ошибка:

code (Это часть файла 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() << Это вернет номер, как указано в <a href="http://code.google.com/apis/maps/documentation/javascript/v2/reference.html" rel="nofollow"> API Google Maps :

Этополученная ошибка:

org.apache.jasper.JasperException: PWC6033: ошибка компиляции Javac для JSP

PWC6197: ошибка в строке: 81 вфайл jsp: /maptest.jsp PWC6199: сгенерированная ошибка сервлета: строка: ///maptest_jsp.java: 127: найдены несовместимые типы: требуется void: int

PWC6197: в строке: 82 произошла ошибкаjsp файл: /maptest.jsp PWC6199: сгенерированная ошибка сервлета: строка: ///maptest_jsp.java: 130: найдены несовместимые типы: void required: int

Может кто-нибудь сказать, пожалуйста, что не так?

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

Вы пытаетесь динамически вставить значение из 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("}");

Получите это? Все, что окружено <%%>, является чистым Java-кодом, все, что находится за его пределами, распечатывается, следовательно, ваше исключение.

Чтобы обойти это, вам нужно изменить логику получения значений Javascript на стороне клиента в коде JSP на стороне сервера.

1 голос
/ 07 ноября 2011

Если вы попытаетесь получить широту и долготу в формате double (тип данных), затем уменьшите его до целого числа.

int xTemp = (int) (tempLatitude);

int yTemp = (int) (tempLong);

и для установки центра вы можете использовать-

map.setCenter(); method.

Надеюсь, я хорошо понял ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...