gpt4 book ai didi

java - Rest方法没有得到正确的数据

转载 作者:行者123 更新时间:2023-12-02 11:11:23 28 4
gpt4 key购买 nike

我有一个基本的 SpringBoot 应用程序。使用 Spring Initializer、JPA、嵌入式 Tomcat、Thymeleaf 模板引擎,并打包为可执行 JAR 文件。我定义了这个 Rest 方法来更新用户

@PutMapping(path = "/api/users/{id}", 
consumes = "application/json",
produces = "application/json")
public ResponseEntity<User> updateUser
(HttpServletRequest request,
@PathVariable long id,
User user) {

System.out.println(user);
saveUser (user)
return ResponseEntity.ok(user);

}

我从控制台调用此方法,使用

curl -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJyaWNhcmQub2xsZUBnbWFpbC5jb20iLCJleHAiOjE1MjgxMTM3NTIsImlhdCI6MTUyNzUwODk1Mn0.QdxabtU1U87pYvyTstT1EG3E6uVpLo2mXCF0FF8iD6acKoAXKl_A0-eV_GrpOFg5FF1qR6B7llI5_USJL85YTQ" -d '{
\"id\":1,\"username\":\"pere.peris@gmail.com\",\"email\":\"pere.peris@gmail.com\",\"firstName\":\"Pere\",\"lastName\":\"PERIS\",\"country\":\"CAT\",\"enabled\":true}' "http://127.0.0.1:2233/iCrypts/api/users/1"

但是在System.out.println(user);上,我从POJO获得的所有值都是null(!?),但是id是1

最佳答案

@RequestBody 注释缺失

public ResponseEntity<User> updateUser
(HttpServletRequest request,
@PathVariable long id,
@RequestBody User user) {
......

}

它包含值为 1id 的原因是它必须在持久层自动生成。

关于java - Rest方法没有得到正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com