我正在建造类似储物柜管理系统的东西,储物柜有更新历史记录。我想使用Ajax将此历史记录的列表返回到列表中的X个条目。每当我返回List<LockerHistoryEntity>
或Iterable<LockerHistoryEntity>
时,都会返回对象的数量,但所有对象都是空的。
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
时,数据全部正确显示。
可悲的是,我找不到关于这个确切问题的任何话题,因此这篇文章。
答案 0 :(得分:1)
在将响应发送到AJAX之前,您需要将对象转换为JSON格式。 请看这个链接:http://howtodoinjava.com/jackson/jackson-examples-convert-java-object-to-from-json/