任何人都可以帮我解决这个问题。我有硬编码的json对象,它被映射到我的POJO,但我在Spring Controller中得到了空值。我检查了我的吸气剂和二传手。他们似乎是正确的。我在这做错了什么?
控制器
@PostMapping("/dashboard")
public Dashboard getDashboard(@RequestBody PaginationRequest paginationRequest) {
return topcatService.getDashboard(paginationRequest);
}
JSON
var paginationRequest = { grouping : e.target.value ,total : "1", currentPage : "1", pageSize : "5"};
POJO
public class PaginationRequest {
private String grouping;
private String total;
private String currentPage;
private String pageSize;
//setter/getter
}
答案 0 :(得分:1)
我想说你必须首先创建一个有效的json并测试你的控制器是否正确数据。
试着像这样发送一个json示例:
var paginationRequest = '{\"grouping\":\"anyValue\",\"total\":\"1\",\"currentPage\":\"1\",\"pageSize\": \"5\"}';
这意味着您只发送一个json格式的字符串。
如果你有一个Object,你可能需要将你的Object转换为json String:
var somejson = JSON.stringify(someobject);
答案 1 :(得分:1)
将属性设为public并使用@JsonProperty()注释每个属性(例如@JsonProperty(“grouping”))。您的getter和setter可能不遵循标准命名约定。
答案 2 :(得分:0)
我会尝试提出一些小改动,
@RequestMapping(value = "/dashboard", method = RequestMethod.POST,
consumes = "application/json", produces = "application/json")
public Dashboard getDashboard(@RequestBody PaginationRequest paginationRequest) {