【问题标题】:AJAX - Spring Controller - JSPAJAX - 弹簧控制器 - JSP
【发布时间】:2013-09-07 13:22:37
【问题描述】:

我想向 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 请求有效,控制器成功返回模型集合。

【问题讨论】:

    标签: jsp jquery spring-mvc


    【解决方案1】:

    这行不通, 要将 Ajax 与 Spring 一起使用,您应该使用 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-05-06
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2016-12-23
      相关资源
      最近更新 更多