Spring Ajax List返回但对象为空

时间:2016-05-16 02:31:39

标签: javascript jquery json ajax spring

我正在建造类似储物柜管理系统的东西,储物柜有更新历史记录。我想使用Ajax将此历史记录的列表返回到列表中的X个条目。每当我返回List<LockerHistoryEntity>Iterable<LockerHistoryEntity>时,都会返回对象的数量,但所有对象都是空的。

Example of the problem

Ajax调用(在这种情况下使用getHistory(100)调用):

function getHistory(limit) {
    var data = {};
    data["limit"] = limit;

    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: "/gethistory",
        data: JSON.stringify(data),
        dataType: 'json',
        timeout: 100000,
        success : function(data) {
            fillTable(data);
            console.log(data);
            console.log(data.result);
        },
        error : function(e) {
            //error
        }
    });
}

@RestController

@JsonView(Views.Public.class)
    @RequestMapping(value = "/gethistory", method = RequestMethod.POST, produces="application/json")
    @ResponseBody
    public Iterable<LockerHistoryEntity> getHistory(@RequestBody HistoryLimit limit) {
        Iterable<LockerHistoryEntity> lockerHistory;

        if (limit.getLimit() >= 0) {
            lockerHistory = history.findAllLimit(limit.getLimit());
        } else {
            lockerHistory = history.findAll();
        }

        return lockerHistory;
    }

使用for循环打印lockerHistory时,数据全部正确显示。

可悲的是,我找不到关于这个确切问题的任何话题,因此这篇文章。

1 个答案:

答案 0 :(得分:1)

在将响应发送到AJAX之前,您需要将对象转换为JSON格式。 请看这个链接:http://howtodoinjava.com/jackson/jackson-examples-convert-java-object-to-from-json/