我从一个平面jsp页面调用控制器,使用ajax提交表单,我想从控制器返回一个hashmap到jsp页面,我可以迭代显示hashmap的值。
如果我在响应中发送消息,我可以在ajax函数内部获得成功:但是如何获取整个地图。因为如果你甚至在请求属性中设置了你无法在jsp页面中获得它。请帮助。
答案 0 :(得分:2)
在控制器的方法上使用@ResponseBody注释。例如:
@RequestMapping(value = "/yourAjaxRequestUrl", method = RequestMethod.POST)
public
@ResponseBody
Map<String, Object> performOperation(@RequestParam("someParam") String someParam) {
//Do something
return Collections.<String, Object>singletonMap("yourObject", yourObject);
}
这将以JSON格式返回一个对象,然后可以通过javascript访问地图中的所有对象。
答案 1 :(得分:0)
我认为您将服务器端代码与客户端代码混淆。 AJAX是客户端,JSP是服务器端。你无法在两者之间传递数据。
当您进行AJAX调用时,JSP已经完成执行,并且它生成的标记在浏览器中,包括您的AJAX代码。
如果您的Spring Controller返回JSON(可能您将Map表示为JavaScript关联数组),那么您可以使用jQuery迭代该数组并根据其内容创建动态HTML元素。