我正在尝试在浏览器中显示我的JSON,我在JSON中获取数据但只获取了我的表的最后一条记录。以下jar存在我的构建路径中,
这是我的控制器方法
@RequestMapping("/viewDashboard")
@ResponseBody
public ModelMap test(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @RequestParam String name) {
ModelMap modelMap = new ModelMap();
List<Instances> instances = viewDashboardServiceImpl.viewDashboard();
log.info(instances.size());
return modelMap.addAllAttributes(instances);
}
}
实际上在数据库表中我是五条记录,但在json中我只得到一条记录数据。
在将实例列表添加到modelMap对象之前的上述方法中,我正在检查列表的大小,并且它给出了五个,但在我的JSON中它只显示一个记录的数据。
这是我的控制台输出
17:08:08,638 INFO [com.mac.controller.DashboardController](http - 127.0.0.1-808 0-1)实例大小列表:5
这是我的JSON
{"instances":{"id":5,"instanceName":".net","applications":{"id":3,"name":">net","ownerName":"Mou","version":"3kmnc"},"environments":{"id":2,"name":"IST","ownerName":"Mou","version":"1.23.asd"},"version":"2.3as"}}
提前致谢。
答案 0 :(得分:1)
这看起来真正的问题是modelMap.addAllAttributes(instances)
电话。 Spring 将根据每个元素的类名生成列表元素的键。
例如:
List<String> list = Arrays.asList("x", "y", "z");
ModelMap m = new ModelMap();
m.addAllAttributes(list);
此处ModelMap
将包含一个属性名称为"string"
且值为"z"
的条目。 "x"
和"y"
不在地图中,因为每个生成的属性名称都是"string"
,最后一个属性名称将获胜。
要解决此问题,只需在将instances
集合添加到modelMap
时为其设置属性名称:
modelMap.addAttribute("myInstances", instances);