【问题标题】:Why am I getting null values on the server side after sending a post request by Postman为什么我在邮递员发送帖子请求后在服务器端得到空值
【发布时间】:2022-01-22 17:19:18
【问题描述】:

我已经使用 Spring boot 创建了一个 RESTful Web 服务以将记录添加到 H2 数据库,但是当我将数据从邮递员发送到我的处理程序方法时,我在服务器端和发送到客户端的响应中得到空值好吧,有人可以帮帮我吗?

Eclipse 快照 邮递员快照

我的控制器代码:

@RestController
public class AlienController {

    @Autowired
    AlienRepo repo;
    
    @RequestMapping("/")
    public String home() {
        return"home.jsp";
    }
    
    @PostMapping(path="/alien")
    public Alien addAlien(Alien alien) {
        System.out.println(alien);
        repo.save(alien);
        return alien;
    }
    

我的 DAO 课程:

    @Entity
    public class Alien {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int aid;
        private String aname;
        private String lang;
        
        public int getAid() {
            return aid;
        }
        public void setAid(int aid) {
            this.aid=aid;       
        }
        
        public String getAname() {
            return aname;
        }
        public void setAname(String aname) {
            this.aname=aname;       
        }
        
        public String getLang() {
            return lang;
        }
        public void setLang(String lang) {
            this.lang=lang;         
        }
        @Override
        public String toString() {
            return "Alien Info: Aid=" + aid + ", Aname=" + aname + ", Lang=" +lang;
        }       
    }
    

我的 AlienRepository 代码:

    public interface AlienRepo extends JpaRepository<Alien, Integer>{   
    }

【问题讨论】:

  • 如果您尝试发送一个 json 对象作为请求的主体,您需要通过添加 @RequestBody 注释来指定:public Alien addAlien(@RequestBody Alien alien)
  • 是的,谢谢@OussamaZAGHDOUD。
  • @OussamaZAGHDOUD 你应该把它作为答案发布
  • 未来:请学习如何正确使用markdown语言来格式化/缩进你的代码输入。不要只是假设你知道它是如何工作的,然后放下一些东西,然后忽略它看起来并不像它应该的那样。你看,那个链接“帮助”和“预览”,它们的存在是有原因的。帮助您提供优质内容。

标签: java spring rest


【解决方案1】:

你应该使用注解@RequestBody

   public Alien addAlien(@RequestBody Alien alien)

您应该通知 Spring 您正在等待包含 BodyHttpRequest,Spring 会自动将入站 HttpRequest 主体反序列化到 Java 对象上

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2019-11-23
    • 2021-05-23
    • 1970-01-01
    • 2020-08-16
    • 2016-03-29
    • 2012-11-11
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多