SpringBoot之实体参数的详细解析

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测试:

相关推荐

  1. springboot请求参数

    2023-12-17 19:06:03       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 19:06:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 19:06:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 19:06:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 19:06:03       18 阅读

热门阅读

  1. Linux常用命令大全(摘录整理)

    2023-12-17 19:06:03       33 阅读
  2. Spring Data JPA 提供的默认查询方法

    2023-12-17 19:06:03       32 阅读
  3. vscode

    vscode

    2023-12-17 19:06:03      36 阅读
  4. day 18二叉树(五)

    2023-12-17 19:06:03       33 阅读
  5. 《农业》特刊约稿

    2023-12-17 19:06:03       36 阅读
  6. 帆软BI目录

    2023-12-17 19:06:03       48 阅读
  7. 字节面试题(懂车帝)后端开发

    2023-12-17 19:06:03       46 阅读
  8. Python学习之复习MySQL-Day2(DML)

    2023-12-17 19:06:03       51 阅读
  9. vue使用自定义指令使用滚动加载

    2023-12-17 19:06:03       46 阅读
  10. Android手机使用Termux终端模拟器

    2023-12-17 19:06:03       65 阅读