我想了解Spring REST
和REST services
。我为POST
请求创建了一个控制器,如下所示:
@RequestMapping(method = RequestMethod.POST, path = "newItem")
public ResponseEntity<Item> createItem(
@RequestParam(value = "name") String name,
@RequestParam(value = "date") String date,
@RequestParam(value = "location") String location) {
Item item = new Item(name, date, location);
//save into database
}
我的问题是:如果我的项目允许说15个属性怎么办?我是否需要为每个创建@RequestParam
?或者这是另一种方式吗?你能给我一些指导从哪里开始吗?
答案 0 :(得分:1)
如果我的商品让15个属性说明怎么办?我需要创建吗? 每个@RequestParam?或者这是另一种方式吗? 你能给我一些指导从哪里开始吗?
POST请求数据应该是正文的一部分,它们不应该使用@RequestParam
来使用,因此请更改您的控制器方法,如下所示:
@RequestMapping(method = RequestMethod.POST, path = "newItem")
public ResponseEntity<Item> createItem(@RequestBody Item item) {
Item item = new Item(name, date, location);
//save into database
}
因此,当Spring DispatcherServlet
收到请求时,将使用请求数据填充item
对象(称为反序列化)。
您可以查看here了解详情@RequestBody
答案 1 :(得分:0)
Usuarl方法在POST的情况下它在请求体中发送数据。
@RequestBody String postReqeust
此外,spring提供了几个请求体到对象的转换器。例如,您可以定义描述json对象的类Itm并定义方法
public ResponseEntity<Item> createItem( @RequestBody NewItemReqeust request)