【发布时间】:2012-10-03 11:04:00
【问题描述】:
控制器签名(我也尝试过作为 requestbody):
@RequestMapping(value = "/Lame", method = RequestMethod.POST)
public
@ResponseBody
boolean getLame(@RequestParam String strToMatchA, @RequestParam String strToMatchB) {}
这是我的 json :
{
"strToMatchA": "EN",
"strToMatchB": "lon"
}
不工作,我收到错误:
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'strToMatchA' is not present
从方法签名中删除第一个参数然后使其工作(该方法被正确调用),我应该做什么?
当我更改方法参数以使用@RequestBody 进行注释时,我收到以下错误:
java.io.IOException: Stream closed
【问题讨论】:
-
您是否在启用调试的情况下进行编译?否则,您的参数名称将不可用。
-
@DavidGrant RequestParam 将采用方法签名中定义的参数名称。但我也尝试过手动指定名称
-
您使用哪个库进行对象映射?是杰克逊还是别的什么?它在类路径上吗?另外,RESTFul控制器的请求方法基本上应该是
GET而不是POST。 -
@Lion jackson,它适用于一个参数。你说的 Restful api 应该只使用 GET 吗?值得商榷:stackoverflow.com/q/11522946/106261
-
所以我的 json 对每个人来说都是正确的?
标签: java javascript json spring spring-mvc