我们可以在Spring Controller中使用@RequestParam和@RequestBody吗?

时间:2016-06-15 06:39:15

标签: spring rest spring-mvc

public ResponseEntity<String> action(@RequestParam(value = "id") final String id,@RequestBody item item)
throws IllegalAccessException {
    System.out.println("");
}

每当我点击此网址时,我都会收到错误请求错误。

请求JSON:

{
    "id": "rw121232323e",
    "item":{
            "code": "shirt",
            "qty":10
           }
}

但是当我的控制器方法中只有@RequestBody时,代码才有效。 想知道@RequestParam@RequestBody是否可以一起使用。

1 个答案:

答案 0 :(得分:1)

使用您提供的示例json,id是正文的一部分,而不是请求参数。此外,@RequestParam的“required”属性的默认值为true,我怀疑这是您获得错误请求响应的原因。要么在url中指定参数(通过将?id=yourId放在其末尾),要么指定请求参数,如下所示:

@RequestParam(required = false) String id