从控制器传递一个对象并在jquery中使用它

时间:2015-11-09 13:18:44

标签: jquery arrays

我有一个控制器,我正在使用model和view将数组列表传递给jsp页面。现在我需要在java脚本函数中使用这个数组列表。

我的jsp页面是:

`

<script type="text/javascript">
$(document).ready(function(){
    $("#click").click(function(){
      var y=$("#hid").val();
      for (var key in y) {
          alert(y[key].location);
        }

    });
});
</script>
<input type="hidden" id="hid" value="${cabsList}" />

`

我的控制器是

public ModelAndView userHomePage() {
        Map<String, Object> model = new HashMap<String, Object>();
        ArrayList<Driver> list = driverService.retriveDriverList();
        model.put("cabsList", list);
        return new ModelAndView("userHome",model);
    }

所以我需要在我的jquery function.cabs列表中使用cabsList包含cabs的详细信息。我需要访问它们的位置来完成那个jquery函数

1 个答案:

答案 0 :(得分:0)

执行${cabsList}时,将使用toString方法。由于cabsListArrayList,因此结果类似于[firstElement, secondElement, ...]

因此当您执行var y=$("#hid").val();时,y将包含具有此值的字符串。你无法像数组或对象一样使用它。

我的建议:

  • 更改控制器,在模型中放置一个真正的字符串。像firstDriver,secondDriver,...
  • 之类的东西
  • 在您的javascript代码中,使用var y=$("#hid").val().split(',');来阅读您的值