我从一个平面jsp页面调用控制器,没有使用ajax提交表单,我想将一个hashmap从控制器返回到jsp页面,我可以迭代它以显示hashmap的值。
如果我在响应中发送消息,我可以在成功内部的 ajax 函数中得到它:但是如何获取整个地图。因为如果你甚至在请求属性中设置,你就无法在 jsp 页面中得到它。请帮助。
我从一个平面jsp页面调用控制器,没有使用ajax提交表单,我想将一个hashmap从控制器返回到jsp页面,我可以迭代它以显示hashmap的值。
如果我在响应中发送消息,我可以在成功内部的 ajax 函数中得到它:但是如何获取整个地图。因为如果你甚至在请求属性中设置,你就无法在 jsp 页面中得到它。请帮助。
Use @ResponseBody annotation on your controller's method. For e.g.:
@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);
}
This will return you an object in JSON format, all objects in your map then can be accessed via javascript.
我认为您将服务器端代码与客户端代码混淆了。AJAX 是客户端,JSP 是服务器端。你只是不能在两者之间传递数据。
当您进行 AJAX 调用时,JSP 已经完成执行,并且它生成的标记存在于浏览器中,包括您的 AJAX 代码。
如果您的 Spring Controller 返回 JSON(也许您将 Map 表示为 JavaScript 关联数组),那么您可以使用 jQuery 遍历该数组并根据其内容创建动态 HTML 元素。