使用 spring 尝试 post 数据时获取空值
Getting nulls when trying to post data using spring
我使用 spring 框架制作了一个 crud ajax rest 应用程序。问题是:
当我从客户端向服务器发送 post 时,我收到 object 填充的空值,从客户端我的状态为 200。这是我的代码:
产品class
public class Product {//getters,setters and toString() generated with Eclipse
private Integer id;
private String name;
private String description;
private String createdDate;
private Integer placeStorage;
private Boolean reserved;
休息控制器
@RestController
public class ProductRestController {
@Autowired
private ProductServiceImpl productService;
@PostMapping(value = "/getRecord")
public void addProduct(Product product) {
System.out.println(product);
}
}
AJAX函数
function sendRecord(data){
$.ajax({
type : 'POST',
url : '/getRecord',
contentType : "application/json",
cache : false,
dataType: 'json',
processData:false,
data: data,
dataType:'json',
success : function(data) {
update_table();
}
});
}
我post正在
的数据
我正在获取的数据
您没有告诉 Spring 从哪里获得您的产品。您错过了注释。
@RestController
public class ProductRestController {
@Autowired
private ProductServiceImpl productService;
@PostMapping(value = "/getRecord")
public void addProduct(@RequestBody Product product) {
System.out.println(product);
}
}
您还应该考虑重命名 /getRecord,因为您除了发送一些东西之外什么也得不到。 :)
查看@RequestBody 注释https://www.baeldung.com/spring-request-response-body。
@PostMapping(value = "/getRecord")
public void addProduct(@RequestBody Product product) {
System.out.println(product);
}
它会自动将请求正文数据映射到您的产品对象中。如果您有时间,还可以查看 @RequestParam
和 @PathVariable
,它们都是用于数据获取的,并且以不同的方式针对不同的目标工作。
我使用 spring 框架制作了一个 crud ajax rest 应用程序。问题是: 当我从客户端向服务器发送 post 时,我收到 object 填充的空值,从客户端我的状态为 200。这是我的代码:
产品class
public class Product {//getters,setters and toString() generated with Eclipse
private Integer id;
private String name;
private String description;
private String createdDate;
private Integer placeStorage;
private Boolean reserved;
休息控制器
@RestController
public class ProductRestController {
@Autowired
private ProductServiceImpl productService;
@PostMapping(value = "/getRecord")
public void addProduct(Product product) {
System.out.println(product);
}
}
AJAX函数
function sendRecord(data){
$.ajax({
type : 'POST',
url : '/getRecord',
contentType : "application/json",
cache : false,
dataType: 'json',
processData:false,
data: data,
dataType:'json',
success : function(data) {
update_table();
}
});
}
我post正在
的数据我正在获取的数据
您没有告诉 Spring 从哪里获得您的产品。您错过了注释。
@RestController
public class ProductRestController {
@Autowired
private ProductServiceImpl productService;
@PostMapping(value = "/getRecord")
public void addProduct(@RequestBody Product product) {
System.out.println(product);
}
}
您还应该考虑重命名 /getRecord,因为您除了发送一些东西之外什么也得不到。 :)
查看@RequestBody 注释https://www.baeldung.com/spring-request-response-body。
@PostMapping(value = "/getRecord")
public void addProduct(@RequestBody Product product) {
System.out.println(product);
}
它会自动将请求正文数据映射到您的产品对象中。如果您有时间,还可以查看 @RequestParam
和 @PathVariable
,它们都是用于数据获取的,并且以不同的方式针对不同的目标工作。