我正在使用本教程https://spring.io/guides/gs/rest-service/
我想传递给除了String之外的Web服务API方法参数:
@RestController
public class ApiClass {
@RequestMapping("/service")
public int service(@RequestParam(value="paramIn") CustomClass paramIn) {
if (paramIn.value != 0) return 1;
else return 0;
}
}
但是当我尝试它时,我得到了这个错误:
HTTP状态500 - 无法将“java.lang.String”类型的值转换为必需类型“CustomClass”;嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为所需类型[CustomClass]:找不到匹配的编辑器或转换策略。
Thnaks,
答案 0 :(得分:2)
通常的方法是使用POST
或PUT
方法并使用@RequestBody
注释自定义对象。例如:
@RequestMapping(value = "/service",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE)
public int service(@RequestBody CustomClass paramIn) {
// do something with the paramIn
}
如果POST
CustomClass
实例到端点/service
的JSON表示,Spring将反序列化它并将其作为参数传递给控制器。