Как получить доступ к списку Java, поступающему с сервера в JavaScript внутри моего JSP - PullRequest
4 голосов
/ 19 февраля 2011

Плз рассмотрим сценарий.У меня есть Java-класс под названием Person, как показано ниже:

Person
---------
Integer Id 
String name
String address

Теперь через мой весенний контроллер я передаю список людей на мою страницу jsp (neighbors.jsp), как показано ниже:

List<Persons> persons = new ArrayList<Person>();
.
.
.
return new ModelAndView("/neighbors").addObject("persons", persons);

Теперь проблема здесь.У меня есть Google Maps API в формате Javascript, встроенный в соседей.jsp, чтобы отобразить местоположение человека, вошедшего в систему. Это отлично работает.Карты Google также предлагают сравнение адресов.Я хочу отображать маркеры адресов других лиц, которые находятся в пределах 5 миль от адреса пользователя.Каждый из маркеров представляет собой ссылку на страницу, на которой будет отображаться информация о конкретном человеке.

Предположим, я получаю доступ к каждому адресу в следующем формате, как мне вызвать функцию javascript?

<c:forEach items="${persons }" var="person">

       <!-- I want to pass each address ${person.address} to the javascript functions thats going to compare addresses --> 

</c:forEach>

Может ли кто-нибудь помочь мне разобраться со сценарием?

1 Ответ

2 голосов
/ 19 февраля 2011

Два способа сделать это: -

Первый способ ... вы можете установить значение в виде скрытого поля, которое позволяет javascript получить к нему доступ: -

<c:forEach items="${persons}" var="person" varStatus="i">
   <input id="address${i.count}" type="hidden" value="${person.address}">
</c:forEach>

В вашем javascript: -

yourJavascriptFunction(document.getElementById("address1").value);

Второй способ ... используйте тег <script> в теге <c:foreach>: -

<c:forEach items="${persons}" var="person" varStatus="i">
   <script>
       yourJavascriptFunction("${fn:replace(person.address, "\"", "\\\"")}");
       ...
   </script>
</c:forEach>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...