您好,我有一个任务要向商店添加一本书。我有这样的动作:
@PostMapping("/")
public String addBook(@RequestParam Long id, @RequestParam String isbn, @RequestParam String title,
@RequestParam String author, @RequestParam String publisher, @RequestParam String type) {
memoryBookService.addBook(new Book(id,isbn,title,author,publisher,type));
return "redirect:/";
}
但我不应该以这种方式添加这本书,而应该在下面使用类似的内容。问题是我不知道如何将参数从post方法传递给我的构造函数,以使用此RequestBody添加新书。有人可以向我解释吗?
@PostMapping("/")
public String addBook(@RequestBody Book book) {
// code
return "redirect:/";
这是我的JSON:
{"id": "1L"
"isbn": "9788324631766"
"title": "Thinking in Java"
"author": "Bruce Eckel"
"publisher": "Helion"
"type": "programming"
}
答案 0 :(得分:1)
Jersey或您正在使用的任何框架正在为您繁重的工作,使您可以从输入json创建Book对象。以Book对象的形式获取反序列化对象后,就可以使用getter来获取id,isbn和其他信息
book.getId()
book.getIsbn()
但是,您可以使用POSTMAN或cURL将json发送到您的服务。
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"id": "1L", "isbn": "9788324631766","title": "Thinking in Java","author": "Bruce Eckel","publisher": "Helion", "type": "programming" }' http://localhost:8080/<servicename>