Post 请求不与 spring mvc Rest api 中的 POJO class 绑定数据。
Post request not bind data with POJO class in spring mvc Rest api.
我对休息api概念很陌生。我正在尝试实现一个可以接收 post 方法的简单方法。问题是请求命中了方法,但没有将数据与 POJO class 绑定。
这是我的代码。
@RestController
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@ResponseBody
@RequestMapping(value = "/", method = RequestMethod.POST)
public CompileRequest home(@ModelAttribute CompileRequest compileRequest) {
logger.info("user name : {}", compileRequest.getUserName()); // null
logger.info("input file path : {}", compileRequest.getInputFilePath()); //null
return compileRequest;
}
}
我没有使用@RequestBody,因为它给了我 415 http 错误。
这是我的 POJO class.
@Data // use lombok for getter and setter.
public class CompileRequest {
private String userName;
private String inputFilePath;
}
userName
和 inputFilePath
字段剩余 null
。我不明白为什么数据绑定不起作用。我该如何解决这个问题?
谢谢。
使用 return 如下。由于您想要休息响应,它还为您提供了发送正确状态代码的选项
public ResponseEntity<?> home(@RequestBody CompileRequest compileRequest) {
return return ResponseEntity.ok(compileRequest);
}
在 CompileRequest
class
之上添加以下内容
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
如果您还没有以下依赖项,请添加它
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson}</version>
</dependency>
最后发送数据为Json
{
"userName" : "name",
"inputFilePath": "path"
}
我对休息api概念很陌生。我正在尝试实现一个可以接收 post 方法的简单方法。问题是请求命中了方法,但没有将数据与 POJO class 绑定。 这是我的代码。
@RestController
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@ResponseBody
@RequestMapping(value = "/", method = RequestMethod.POST)
public CompileRequest home(@ModelAttribute CompileRequest compileRequest) {
logger.info("user name : {}", compileRequest.getUserName()); // null
logger.info("input file path : {}", compileRequest.getInputFilePath()); //null
return compileRequest;
}
}
我没有使用@RequestBody,因为它给了我 415 http 错误。 这是我的 POJO class.
@Data // use lombok for getter and setter.
public class CompileRequest {
private String userName;
private String inputFilePath;
}
userName
和 inputFilePath
字段剩余 null
。我不明白为什么数据绑定不起作用。我该如何解决这个问题?
谢谢。
使用 return 如下。由于您想要休息响应,它还为您提供了发送正确状态代码的选项
public ResponseEntity<?> home(@RequestBody CompileRequest compileRequest) {
return return ResponseEntity.ok(compileRequest);
}
在 CompileRequest
class
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
如果您还没有以下依赖项,请添加它
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson}</version>
</dependency>
最后发送数据为Json
{
"userName" : "name",
"inputFilePath": "path"
}