Web Services 如何使用http post将两个参数传递给restful Web服务?无法识别的字段,未标记为可忽略

zbsbpyhn  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(164)

我的课程pojo是;

public class Course {
private int cid;
private String name;
private String code;
private int credit;

//Getters Setters

}
服务项目:

@RequestMapping(value="/addcourse" , method=RequestMethod.POST)
public @ResponseBody Response<Course> addCoursetoUser(@RequestBody Course course, @RequestBody User user) throws SQLException{

    if(new CourseDAO().addCoursetoUser(course, user))
        return new Response<>(...);
    else
        return new Response<>(...);

}

我正在尝试将此json值发送到我的Web服务,但收到此错误:无法识别属性异常:无法识别的字段“cid”(Class com.spring.model.Course),未标记为可忽略

{
"id" :3,
"name" : "Algorithms",
"code" : "COM367",
"credit" : 3,
"cid" : 28,
"username" : "selin",
"password" : "ssgg"

}
我试过很多jsons,但是我总是得到这个错误。提前感谢。

c7rzv4ha

c7rzv4ha1#

你不能。你需要将两个对象 Package 成一个对象(可能是CourseUserCourseUserRequest)。
该错误还意味着Course类缺少Java模型中的cid字段。

vwhgwdsa

vwhgwdsa2#

首先您需要为所有在pojo中声明的类成员编写getter和setter方法:

例如:

public class Course {
private int cid;

public int getCid()
{
      return this.cid ;
}

public void setCid(int cid)
{
    this.cid=cid;
}

}

第二个此处的post方法中不能有两个请求主体参数,或者需要定义一个具有Course和User Pojo的父Pojo,如下所示

public class MyClass{

private Course course ;

private User user ;

// getter setter for User and Course 

}

当然,如果你像这样使用,你的json会发生变化:

{
"course.id" :3,
"course.name" : "Algorithms",
"course.code" : "COM367",
"course.credit" : 3,
"course.cid" : 28,
"user.username" : "selin",
"user.password" : "ssgg"
}

相关问题