希望在JAVA Spring中的JSP视图上输出json对象。但是当我执行以下操作时,我看到的是java对象toString()
@RequestMapping(value = "/home", method = RequestMethod.GET)
@ResponseBody
public ModelAndView homePage() {
MapDAOImpl mapDAOImpl = (MapDAOImpl) appContext.getBean("mapDAOImpl");
ReturnLocations[] daoResponse = mapDAOImpl.getPropertiesJsFilter(params);
ModelAndView model = new ModelAndView();
model.setViewName("home");
model.addObject("locations", daoResponse);
return model;
}
JSP
<script>
<c:out value="${locations}" />
</script>
编辑解决方案:
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(daoResponse);
ModelAndView model = new ModelAndView();
model.setViewName("home");
model.addObject("locations", json);
return model;
答案 0 :(得分:1)
只需在处理程序方法中将ReturnLocations[]
序列化为JSON,将结果存储在String
中,然后将String
添加到Model
。您可以通过请求属性在JSP中访问它。
另一种方法是使用Javascript呈现HTML页面,该页面将请求发送到单独的API,然后直接返回JSON(例如,使用@ResponseBody
序列化)。然后,您可以根据结果做任何事情。