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

2023-12-14 22:52:16

1.4 数组集合参数

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

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

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

  1. 数组

  2. 集合

1.4.1 数组

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

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

方式二:xxxxxxxxxxxxx?hobby=game,java

1.4.2 集合

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

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

Controller方法:

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

Postman测试:

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

方式二:xxxxxxxxxxxxx?hobby=game,java

1.5 日期参数

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

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

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

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