Spring MVC无法将JSONArray中的大数据从控制器传递到JSP页面

时间:2015-03-21 00:21:44

标签: spring jsp spring-mvc

我有一个需要从控制器传递到视图的部门名称列表。如果要传递一些部门名称,以下代码可以正常工作,例如。 3个名字。当部门数量变大时,它不起作用,例如300个名称,在这种情况下,JSP代码中的第一个警报甚至不会被调用。我从控制器打印了JSONArray depNameJSONList的长度,它显示了正确的名称数量。我使用JSON的原因是因为我需要在jquery dataTable中使用它。但是,如果有300个名字,为什么不能传递给视图呢?非常感谢!

控制器:

@RequestMapping(value = "/getDepartment", method = { RequestMethod.POST, RequestMethod.GET })
 public ModelAndView getDepartment()
 {
     ModelAndView mv = new ModelAndView();
     JSONArray depNameJSONList= new JSONArray(departmentNames); 
     logger.debug("depNameJSONList size: " + depNameJSONList.length()); // printed 309
     mv.addObject("depNameJSONList", depNameJSONList);
     mv.setViewName("displayDepartment");
     return mv;
  }

JSP:

 $(document).ready(function() 
 {
    alert("document ready");
    var depList = $.parseJSON('${depNameJSONList}');      
    alert(depList);  
  });

1 个答案:

答案 0 :(得分:1)

我猜你的JSON字符串中有一些特殊字符。 在像这样的情况下,你必须小心使用特殊字符,如'或"或\ r或\ n或\ t;一个(或多个JSON字符串中的thiese字符将在JSON.parse方法中抛出错误。我可以建议使用org.springframework.web.util.HtmlUtils类来编码HTML实体中的特殊字符