在春天使用ajax调用从控制器获取地图

时间:2013-08-30 10:01:35

标签: java ajax spring jsp spring-mvc

我从一个平面jsp页面调用控制器,使用ajax提交表单,我想从控制器返回一个hashmap到jsp页面,我可以迭代显示hashmap的值。

如果我在响应中发送消息,我可以在ajax函数内部获得成功:但是如何获取整个地图。因为如果你甚至在请求属性中设置了你无法在jsp页面中获得它。请帮助。

2 个答案:

答案 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元素。