前言:

在前面我们已经了解到,Spring Boot项目中,可以传递一个参数,或者多个参数,但是,随着参数的增加,咱们总不能每增加一个参数,就重新写一段代码吧??这样显得很是臃肿,因此,我们可以将多个参数封装成一个对象来进行传递,每当增加一个参数的时候,就在对象里面增加一个属性,并重写Setter ,getter ,toString方法等操作来简化代码!这样就显得很简单方便操作了!

假设这是我们一开始的代码:

@RestController
@RequestMapping("/param")
public class ParamController {

    @RequestMapping("/m1")
    public String m1(String name){
        return "这是你的姓名:"+name;
    }

}

当我们不仅仅满足一个name属性的时候,开始增加一个参数id,那么此时的代码可以为:

@RestController
@RequestMapping("/param")
public class ParamController {

    @RequestMapping("/m1")
    public String m1(String name){
        return "这是你的姓名:"+name;
    }

    @RequestMapping("/m2")
    public String m2(String name,Integer id){
        return "序列号为:"+ id +"这是你的姓名:"+name;
    }

}

问题:

当我们不仅仅满足一个name和id属性的时候,开始增加一个参数age,那么此时我们就得思考一下了,如果只是这么几个属性的话,简单的增加是没啥问题的,但是,当属性越来越多(成百上千)的话,我们又该如何处理?是一直这么写下去吗?这得显得多么臃肿啊!显得不是很美观!!

解决方案:

那么,正确的做法(首推)为:创建一个对象,并重写Setter ,getter ,toString方法等

假设,创建一个Person类:

//将参数封装为对象
public class Person {
    Integer id;
    String name;
    Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    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 "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

此时,我们在Spring Boot项目中来进行传递的时候,便可以将Person对象传入即可!

//将Person对象传入
    @RequestMapping("/m3")
    public String m3(Person person){
        return " 接收到的参数:Person:"+person.toString();
    }

重写启动程序:

在浏览器中输入:localhost:8080/param/m3

springboot MultipartFile 多参数 springboot传递多个参数_ide

当我们对其中某个参数赋值的时候:localhost:8080/param/m3?id=10&name=zhangsan

springboot MultipartFile 多参数 springboot传递多个参数_ide_02

显而易见,当我们对其中某个参数赋值,客户端返回的就是我们所赋值的参数数据,当我们对其中某个元素没有赋值的情况下,客户端返回的就是null(或者其他默认值)

当然,我们也可以用Postman来操作一下:

在没有参数传入的时候:http://localhost:8080/param/m3

springboot MultipartFile 多参数 springboot传递多个参数_java_03

在只传入某个参数的时候:

springboot MultipartFile 多参数 springboot传递多个参数_开发语言_04