SpringBoot之数组,集合,日期参数的详细解析

1.4 数组集合参数

数组集合参数的使用场景:在HTML的表单中,有一个表单项是支持多选的(复选框),可以提交选择的多个值。

SpringBoot之数组,集合,日期参数的详细解析_第1张图片

多个值是怎么提交的呢?其实多个值也是一个一个的提交。

SpringBoot之数组,集合,日期参数的详细解析_第2张图片

后端程序接收上述多个值的方式有两种:

  1. 数组

  2. 集合

1.4.1 数组

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

SpringBoot之数组,集合,日期参数的详细解析_第3张图片

Controller方法:

@RestController
public class RequestController {
    //数组集合参数
    @RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }
}

Postman测试:

在前端请求时,有两种传递形式:

方式一: xxxxxxxxxx?hobby=game&hobby=java

SpringBoot之数组,集合,日期参数的详细解析_第4张图片

方式二:xxxxxxxxxxxxx?hobby=game,java

SpringBoot之数组,集合,日期参数的详细解析_第5张图片

1.4.2 集合

集合参数:请求参数名与形参集合对象名相同且请求参数为多个,@RequestParam 绑定参数关系

默认情况下,请求中参数名相同的多个值,是封装到数组。如果要封装到集合,要使用@RequestParam绑定参数关系

SpringBoot之数组,集合,日期参数的详细解析_第6张图片

Controller方法:

@RestController
public class RequestController {
    //数组集合参数
    @RequestMapping("/listParam")
    public String listParam(@RequestParam List hobby){
        System.out.println(hobby);
        return "OK";
    }
}

Postman测试:

方式一: xxxxxxxxxx?hobby=game&hobby=java

SpringBoot之数组,集合,日期参数的详细解析_第7张图片

方式二:xxxxxxxxxxxxx?hobby=game,java

SpringBoot之数组,集合,日期参数的详细解析_第8张图片

1.5 日期参数

上述演示的都是一些普通的参数,在一些特殊的需求中,可能会涉及到日期类型数据的封装。比如,如下需求:

SpringBoot之数组,集合,日期参数的详细解析_第9张图片

因为日期的格式多种多样(如:2022-12-12 10:05:45 、2022/12/12 10:05:45),那么对于日期类型的参数在进行封装的时候,需要通过@DateTimeFormat注解,以及其pattern属性来设置日期的格式。

SpringBoot之数组,集合,日期参数的详细解析_第10张图片

  • @DateTimeFormat注解的pattern属性中指定了哪种日期格式,前端的日期参数就必须按照指定的格式传递。

  • 后端controller方法中,需要使用Date类型或LocalDateTime类型,来封装传递的参数。

Controller方法:

@RestController
public class RequestController {
    //日期时间参数
   @RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
        System.out.println(updateTime);
        return "OK";
    }
}

Postman测试:

SpringBoot之数组,集合,日期参数的详细解析_第11张图片

你可能感兴趣的:(Web,spring,boot,后端,java,开发语言,spring)