从Spring 4 Controller到AJAX返回Java对象列表

时间:2015-10-25 08:45:02

标签: java spring spring-mvc serialization

我正在使用AJAX从数据库中获取Company个对象的列表。我已将@ResponseBody添加到我的控制器方法中。和jackson-mapper-asl依赖。下面是AJAX调用:

$.ajax({
        type : 'GET',
        url : $("#contextpath").val() + '/getCompanyList',
        success : function(response) {
            alert(response);
        }
    });

控制器方法:

@RequestMapping(value="/getCompanyList", method=RequestMethod.GET)
public @ResponseBody List<Company> getCompanyList() {
    logger.debug("reached controller getCompanyList");
    return companyServices.getCompanyList();
}

但我收到错误

  

找不到类型为:class java.util.ArrayList

的返回值的转换器

其次,有没有办法将Java对象列表返回给AJAX而不将其转换为JSON?

1 个答案:

答案 0 :(得分:2)

  

但我收到错误

看起来你缺少一个Ajax lib(例如杰克逊)或转换器未注册,可能缺少mime类型(映射)

  

有没有办法将Java对象列表返回给AJAX而不将其转换为JSON?

对于服务器和客户端之间的对话,需要将该传输日期序列化为某种格式,并且客户端将其反序列化。 (典型的格式是Json,XML和许多不同的二进制格式)。对于AJAX,通常使用JSON(通常不是XML)。要回答您的问题:您可以使用其他格式(例如XML),但必须序列化它! 但是JSON在客户端和服务器端对AJAX提供了最好的支持