Ans*_*mad 1 java spring spring-data-rest spring-boot
我有使用弹簧支架控制器的弹簧启动应用程序。这是控制器,下面是响应。我正在使用邮递员工具向此控制器发送请求。并发送内容类型为application / json
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(@RequestBody WebApp webapp, @RequestBody String propertyFiles, @RequestBody String) {
System.out.println("webapp :"+webapp);
System.out.println("propertyFiles :"+propertyFiles);
System.out.println("propertyText :"+propertyText);
return "ok good";
}
Run Code Online (Sandbox Code Playgroud)
2018-03-21 12:18:47.732警告8520-[nio-8099-exec-3] .wsmsDefaultHandlerExceptionResolver:由处理程序执行引起的已解决异常:org.springframework.http.converter.HttpMessageNotReadableException:读取时发生I / O错误输入消息;嵌套异常为java.io.IOException:流关闭
这是我的邮递员要求
{
"webapp":{"webappName":"cavion17","path":"ud1","isQA":true},
"propertyFiles":"vchannel",
"propertytText":"demo property"}
Run Code Online (Sandbox Code Playgroud)
我尝试通过删除RequestBody批注来进行尝试,然后能够命中该服务,但是param对象将被接收为null。
因此,请提出如何在restcontroller中检索对象的建议?
您不能@RequestBody在Spring中使用多个注释。您需要将所有这些包装在一个对象中。
像这样
// some imports here
public class IncomingRequestBody {
private Webapp webapp;
private String propertryFiles;
private String propertyText;
// add getters and setters here
}
Run Code Online (Sandbox Code Playgroud)
而在您的控制器中
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(@RequestBody IncomingRequestBody requestBody) {
System.out.println(requestBody.getPropertyFiles());
// other statement
return "ok good";
}
Run Code Online (Sandbox Code Playgroud)
在此处阅读更多内容 使用Ajax将@RequestBody中的多个变量传递给Spring MVC控制器
| 归档时间: |
|
| 查看次数: |
10606 次 |
| 最近记录: |