POST RequestBody 请求无效

POST request with RequestBody is not working

在下面的示例中,我使用了 POST 和 GET 方法。 post是初始化一个varibale,GET是获取这个varibale。 我使用 Postman 来发出请求。

我收到一条错误消息

@RequestBody(value = "val") //cant resolve method value

请告诉我如何修复 belwo 错误,以便我可以使用 post 方法进行初始化并获取方法来检索值

控制器1

@Controller
@RequestMapping("/call1")
public class Call1 {

public String str = "inti";

@RequestMapping(value = "/intiparam1", method = RequestMethod.POST)
public void intiParam1(@RequestBody(value = "val") String val) {
    this.str = val;
}

@RequestMapping(value = "/getparam1", method = RequestMethod.GET)
public String getParam1() {
    return this.str;
}
}

什么时候使用@RequestBody?

你不能使用它的值。当您有多个要执行操作的字段实体时,可以使用它。假设您想保存用户,那么您可能需要先创建用户模型并在控制器中使用 @RequestBody.

型号:

public class User
{
   @Id
   private int id;
   private String firstname;
   private String lastname;
   //Getters-Setters, AllArgConstructor-constructor
}

@RequestMapping(value = "/requestBodyExample", method = RequestMethod.POST)
public String intiParam1(@RequestBody User user) {
     return user.getFirstname();
}

Quick Start with Spring Boot

创建一个 class 变量并在控制器中使用其他代码。

class Variable {

String data= 'val';
}

@RequestMapping(value = "/intiparam1", method = RequestMethod.POST)
public void intiParam1(@RequestBody Variable val) {
    this.str = val.data;
}

发出请求时将 json 作为 {"data":"12345"}

然后在代码中使用@RequestBody Variable v 而不是 String 因为它将满足您的默认值目的,并且将使代码可扩展,因为您可以在将来根据需要向现有变量添加不同的属性。