【发布时间】:2017-11-25 10:22:43
【问题描述】:
我正在尝试创建一个POST servlet,应该使用JSON 请求调用它。以下应该有效,但无效。可能缺少什么?
@RestController
public class MyServlet {
@PostMapping("/")
public String test(@RequestParam String name, @RequestParam String[] params) {
return "name was: " + name;
}
}
JSON POST:
{
"name": "test",
"params": [
"first", "snd"
]
}
结果:名称始终为空。为什么?
"Response could not be created: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present"
【问题讨论】:
-
使用@RequestBody 参数来给出结果
-
创建一个
@GetController并将其作为获取查询字符串发送是可行的,但我需要 POST + JSON。 -
@PawanPandey 如果我在两个参数上都使用
@RequestBody,我会得到一个错误:"Response could not be created: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String MyServlet.test(java.lang.String,java.lang.String[])" -
有一个像 mydata{name;params[];} 这样的 pojo 类,并在控制器中编写 test(@RequestBody mydata) 并检查请求标头中的内容类型是否为 application/json
标签: java json spring spring-mvc