SpringBoot之实体参数的详细解析

发布时间:2023年12月17日

1.3 实体参数

在使用简单参数做为数据传递方式时,前端传递了多少个请求参数,后端controller方法中的形参就要书写多少个。如果请求参数比较多,通过上述的方式一个参数一个参数的接收,会比较繁琐。

此时,我们可以考虑将请求参数封装到一个实体类对象中。 要想完成数据封装,需要遵守如下规则:请求参数名与实体类的属性名相同

1.3.1 简单实体对象

定义POJO实体类:

public class User {
 ? ?private String name;
 ? ?private Integer age;
?
 ? ?public String getName() {
 ? ? ? ?return name;
 ?  }
?
 ? ?public void setName(String name) {
 ? ? ? ?this.name = name;
 ?  }
?
 ? ?public Integer getAge() {
 ? ? ? ?return age;
 ?  }
?
 ? ?public void setAge(Integer age) {
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?@Override
 ? ?public String toString() {
 ? ? ? ?return "User{" +
 ? ? ? ? ? ? ? ?"name='" + name + '\'' +
 ? ? ? ? ? ? ? ?", age=" + age +
 ? ? ? ? ? ? ? ?'}';
 ?  }
}
?

Controller方法:

@RestController
public class RequestController {
 ? ?//实体参数:简单实体对象
 ? ?@RequestMapping("/simplePojo")
 ? ?public String simplePojo(User user){
 ? ? ? ?System.out.println(user);
 ? ? ? ?return "OK";
 ?  }
}

Postman测试:

  • 参数名和实体类属性名一致时

  • 参数名和实体类属性名不一致时

1.3.2 复杂实体对象

上面我们讲的呢是简单的实体对象,下面我们在来学习下复杂的实体对象。

复杂实体对象指的是,在实体类中有一个或多个属性,也是实体对象类型的。如下:

  • User类中有一个Address类型的属性(Address是一个实体类)

复杂实体对象的封装,需要遵守如下规则:

  • 请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套实体类属性参数。

定义POJO实体类:

  • Address实体类

public class Address {
 ? ?private String province;
 ? ?private String city;
?
 ? ?public String getProvince() {
 ? ? ? ?return province;
 ?  }
?
 ? ?public void setProvince(String province) {
 ? ? ? ?this.province = province;
 ?  }
?
 ? ?public String getCity() {
 ? ? ? ?return city;
 ?  }
?
 ? ?public void setCity(String city) {
 ? ? ? ?this.city = city;
 ?  }
?
 ? ?@Override
 ? ?public String toString() {
 ? ? ? ?return "Address{" +
 ? ? ? ? ? ? ? ?"province='" + province + '\'' +
 ? ? ? ? ? ? ? ?", city='" + city + '\'' +
 ? ? ? ? ? ? ? ?'}';
 ?  }
}
  • User实体类

public class User {
 ? ?private String name;
 ? ?private Integer age;
 ? ?private Address address; //地址对象
?
 ? ?public String getName() {
 ? ? ? ?return name;
 ?  }
?
 ? ?public void setName(String name) {
 ? ? ? ?this.name = name;
 ?  }
?
 ? ?public Integer getAge() {
 ? ? ? ?return age;
 ?  }
?
 ? ?public void setAge(Integer age) {
 ? ? ? ?this.age = age;
 ?  }
?
 ? ?public Address getAddress() {
 ? ? ? ?return address;
 ?  }
?
 ? ?public void setAddress(Address address) {
 ? ? ? ?this.address = address;
 ?  }
?
 ? ?@Override
 ? ?public String toString() {
 ? ? ? ?return "User{" +
 ? ? ? ? ? ? ? ?"name='" + name + '\'' +
 ? ? ? ? ? ? ? ?", age=" + age +
 ? ? ? ? ? ? ? ?", address=" + address +
 ? ? ? ? ? ? ? ?'}';
 ?  }
}

Controller方法:

@RestController
public class RequestController {
 ? ?//实体参数:复杂实体对象
 ? ?@RequestMapping("/complexPojo")
 ? ?public String complexPojo(User user){
 ? ? ? ?System.out.println(user);
 ? ? ? ?return "OK";
 ?  }
}

Postman测试:

文章来源:https://blog.csdn.net/qq_69748833/article/details/134984336
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。