Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的jsp中使用javascript访问来自服务器的java列表 请考虑这个场景。我有一个名为Person的java类,如下所示: Person --------- Integer Id String name String address_Java_Javascript_Hibernate_Spring_Jsp - Fatal编程技术网

如何在我的jsp中使用javascript访问来自服务器的java列表 请考虑这个场景。我有一个名为Person的java类,如下所示: Person --------- Integer Id String name String address

如何在我的jsp中使用javascript访问来自服务器的java列表 请考虑这个场景。我有一个名为Person的java类,如下所示: Person --------- Integer Id String name String address,java,javascript,hibernate,spring,jsp,Java,Javascript,Hibernate,Spring,Jsp,现在,通过我的spring控制器,我将一个人员列表传递到我的jsp页面(neights.jsp),如下所示: List<Persons> persons = new ArrayList<Person>(); . . . return new ModelAndView("/neighbors").addObject("persons", persons); List persons=new ArrayList(); . . . 返回新的ModelAndView(“/nei

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

List<Persons> persons = new ArrayList<Person>();
.
.
.
return new ModelAndView("/neighbors").addObject("persons", persons);
List persons=new ArrayList();
.
.
.
返回新的ModelAndView(“/neights”).addObject(“persons”,persons);
现在问题就在这里。我在neights.jsp中嵌入了javascript格式的google maps api,以显示登录者的位置。这个很好用。 谷歌地图还提供地址比较。我想显示距离用户地址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>

有人能帮我解决这个问题吗?

有两种方法:-

第一条路。。。您可以将该值设置为允许javascript访问的隐藏字段:-

<c:forEach items="${persons}" var="person" varStatus="i">
   <input id="address${i.count}" type="hidden" value="${person.address}">
</c:forEach>
第二种方式。。。在
标记中使用
标记:-

<c:forEach items="${persons}" var="person" varStatus="i">
   <script>
       yourJavascriptFunction("${fn:replace(person.address, "\"", "\\\"")}");
       ...
   </script>
</c:forEach>

yourJavascriptFunction(${fn:replace(person.address,“\\”,“\\\”)});
...

您的想法是正确的,但您的第二个示例根本不起作用,因为您要反复设置单个变量。如果地址包含双引号,它也会中断。@Matt:我对代码做了一些更正。第二种方法应该有效,因为OP希望将值传递到某个javascript函数中。至于地址中可能出现的双引号问题,我使用fn:replace将
替换为
\”
。。。我认为这应该行得通
<c:forEach items="${persons}" var="person" varStatus="i">
   <script>
       yourJavascriptFunction("${fn:replace(person.address, "\"", "\\\"")}");
       ...
   </script>
</c:forEach>