当前位置: 首页 > 知识库问答 >
问题:

@RequestBody正在获取空值

汤弘文
2023-03-14

我创建了一个简单的REST服务(POST)。但是当我从postman@RequestBody调用这个服务时,它没有收到任何值。

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
public class Add_Policy {
    @ResponseBody
    @RequestMapping(value = "/Add_Policy", headers = {
            "content-type=application/json" }, consumes = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
    public Policy GetIPCountry( @RequestBody Policy policy) {

        System.out.println("Check value: " + policy.getPolicyNumber());
        return policy;

    }


}

我的java Bean对象如下:

public class Policy {
    private String PolicyNumber;
    private String Type;
    private String Tenture;
    private String SDate;
    private String HName;
    private String Age;

    public String getPolicyNumber() {
        return PolicyNumber;
    }

    public void setPolicyNumber(String policyNumber) {
        PolicyNumber = policyNumber;
    }

    public String getType() {
        return Type;
    }

    public void setType(String type) {
        Type = type;
    }

    public String getTenture() {
        return Tenture;
    }

System.out.println将null打印为PolcyNumber的值。

请帮我解决这个问题。

我在请求体中传递的JSON是

{
    "PolicyNumber": "123",
    "Type": "Test",
    "Tenture": "10",
    "SDate": "10-July-2016",
    "HName": "Test User",
    "Age": "10"
}

我甚至在postman中设置了Content-TypeApplication/json

共有3个答案

尉迟龙光
2023-03-14

二传将被错过。因此,不会设置对象值。

高琛
2023-03-14

检查将导致问题的@刚体导入。

应该是-

连昊天
2023-03-14

尝试将JSON中属性的第一个字符设置为小写。如。

{
    "policyNumber": "123",
    "type": "Test",
    "tenture": "10",
    "sDate": "10-July-2016",
    "hName": "Test User",
    "age": "10"
}

基本上,Spring使用getter和setter来设置bean对象的属性。它获取JSON对象的属性,将其与同名的setter匹配。例如,为了设置policyNumber属性,它尝试在bean类中找到名为setpolicyNumber()的setter,并使用它来设置bean对象的值。

 类似资料:
  • 我必须实现的逻辑是记录所有的请求与主体服务到数据库。 据我所知,在Controller中,我们可以使用和。我可以在重用它们吗?

  • 问题内容: 我正在使用Spring Boot 1.4.1,其中包括。我有一个带有注释的类和带有注释的方法,用于处理服务代码引发的异常。处理这些异常时,我想记录和POST操作请求的一部分,因此我可以看到导致问题的请求正文,在我看来,该问题对于诊断至关重要。 在Spring Docs中,方法的方法签名可以包括多种内容。通常可以从此处通过或获取请求正文,但是如果我的控制器方法像我的所有方法一样解析请求正

  • 对于下面的方法,JSONObject总是为空。 我的ajax是这样的。我的方法得到的对象作为空地图在服务器端

  • 为什么在上面的程序中我得到InvalidClassException? 线程“main”java.io.InvalidClassException中的异常:SerializationExamples.ac;java.base/java.io.ObjectStreamClass$ExceptionInfo.NewInvalidClassException(ObjectStreamClass.java

  • 我们正在尝试建立springfox:swagger用户界面。但是,当使用值使用post方法创建restcontroller时。对于不可变接口,示例显示的是,模型显示的是接口名称,而不是其他名称。 我注意到,当我使用不可变类作为请求体时,示例显示了它的所有属性。我尝试在接口上添加子类型和父配置,但没有改变任何东西 这是我们不变的界面: 我们的映射: 我们的objectmapper: 我们的招摇过市配

  • 我正在编写一个administrator类,我正在编写的所有其他类都要从它继承。在本例中,我希望类继承一个main方法,并且我还计划实现一个工厂。我必须编写一些sysouts,其中包括各种类名,如charcount、linecount等等。为此,我需要能够获得当前的类名,因为这个方法将被多个类继承。在Java中有没有办法做到这一点?您可以在下面找到我要做的sysout示例: 提前谢谢大家,任何帮助