我的REST控制器出了问题。如果我使用RequestBody(json)发送请求,则某些属性不会到达控制器,尽管它们是在模型中发送和定义的。
我可以发现它看起来像是从本地java Web服务器使用的旧版本文件。当我在Constructor中更改System.out.println值时,旧值仍然输出。
public RestController_ApiKey_2_0() {
System.out.println("RestController_ApiKey_2_0 init");
}
我尝试了以下无助的事情:
有没有人有想法?
答案 0 :(得分:0)
请提供更多代码,如何声明控制器,以及它可以采取哪些参数。还显示示例请求。 以下是一个简单控制器的示例:
模特
public class CustomRequestBody {
private String fieldA;
private String fieldB;
public String getFieldA() {
return fieldA;
}
public void setFieldA(final String fieldA) {
this.fieldA = fieldA;
}
public String getFieldB() {
return fieldB;
}
public void setFieldB(final String fieldB) {
this.fieldB = fieldB;
}
}
控制器:
@Controller
public class MyController {
@RequestMapping(value = "/some-path", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.ACCEPTED)
public ResponseEntity handleSomePath(@RequestBody final CustomRequestBody body, final HttpServletRequest request) {
// Do the job.
}
请求将是:
HTTP POST http://some.server.com/some-path
{
"fieldA":"first value",
"fieldB":"second value"
}
阅读Spring文档here
的更多内容