0

我想向 Spring MVC 控制器生成 AJAX(基于 jQuery)请求并将带有对象的 Collection 返回给 jsp。我有两个麻烦: 1. AJAX 成功块不起作用(有数据类型的东西);2.不知道怎么把这个对象展示给jsp。

<c:forEach items="${objects}" var="object">
    size : <c:out value="${object.size}" />
</c:forEach>

^ 此代码不起作用。

我的 AJAX 请求:

    function AJAXItemRequest(name, surname) {
        $.ajax({
            type : "POST",
            dataType: "json",
            url : "/pages/users",
            data : {name: nameValue, surname: surnameValue},
            success : function(data) {
                alert('success');
            }
        });
    }

Spring MVC 控制器

@RequestMapping(value = "/users", method = RequestMethod.POST)
public ModelMap userHandler(ModelMap model, HttpServletRequest request, @RequestParam("name") String nameValue, @RequestParam("surname") String surnameValue ) throws Exception {
        Collection<Users> users = findConnectedUsers(name, surname);
        model.addAttribute("objects", users);
    return model;
}

此外,AJAX 请求有效,控制器成功返回模型集合。

4

1 回答 1

1

这不起作用,要在 Spring 中使用 Ajax,您应该使用 respose body 而不是 ModelView

@RequestMapping(value="/searchAlluserByQuery.do", method = RequestMethod.POST,headers="content-type=application/json")
@ResponseBody public List<Object> searchAlluserByQuery(@RequestBody  String query) {

return serachService.getListByqueryContains(query);

}

不要忘记在你的类路径上有 jackson.jar 并且在视图层 Jstl 中不适用于 ajax!你应该使用java脚本框架这样的jquery来获取Json对象

于 2013-09-12T09:15:53.717 回答