Java - Spring REST - 更多参数

时间:2017-03-26 19:54:15

标签: java spring rest

我想了解Spring RESTREST 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?或者这是另一种方式吗?你能给我一些指导从哪里开始吗?

2 个答案:

答案 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)