如何在jsp里面的javascript中访问来自服务器的java列表

时间:2011-02-19 00:52:37

标签: java javascript hibernate spring jsp

Plz考虑这个场景。我有一个名为Person的java类,如下所示:

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

现在通过我的spring控制器,我将一个人列表传递给我的jsp页面(neighbors.jsp),如下所示:

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

现在问题出在这里。我有嵌入在neighbors.jsp中的javascript格式的google maps api来显示登录人员的位置。这很好用。 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 个答案:

答案 0 :(得分:2)

有两种方法: -

第一种方式 ...您可以将该值设置为允许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>