请求响应:常见参数接收及封装(数组集合参数及日期参数)

数组参数

在前端页面的表单中,存在复选框元素,当提交表单到后端的时候,会将复选框中的全部内容提交到后端进行处理,由于复选框中往往存在很多数据,并且同复选框中数据名称相同,这样的请求参数叫做数组参数:请求参数名相同并且请求参数为多个,这样的请求参数就是数组参数, 此时想要在后端正确接收到这些数组参数,就需要使用数组(或集合)。

这三个同名的hobby参数就是数组参数。

通过数组接收

可以在后端通过定义数组类型的形参接收。

java 复制代码
@RequestMapping("/hobbies")
public String getArrayParameter(String[] hobby) {
    for (String hobbies : hobby) {
        System.out.println(hobbies);
    }
    return "successful";
}

因为请求参数是数组参数,所以说通过方法形参中的hobby数组就可以全部接收请求参数,(注意:形参数组名必须和请求参数名一致,否则无法正确接收) 接收了这些数组参数后封装为了数组,便于使用:

通过集合接收

对于数组参数,还可以使用集合进行接收,其原理和通过数组接收是一样的,但是使用集合参数接收时,需要在方法形参前使用注解@RequestParam来绑定参数关系,因为数组参数默认是使用数组接收的,并且若集合名和参数名相同,则@RequestParam不需要指定属性,若不同则需要用name属性绑定正确的参数对应关系:

java 复制代码
@RequestMapping("/listParameter")
public String getListParameter(@RequestParam List<String> hobby) {
    for (String s : hobby) {
        System.out.println(s);
    }
    System.out.println("用集合成功接收数组参数");
    return "successful";
}

通过集合也成功接收到了数组请求参数,但是特别注意:因为默认是使用数组接收数组参数,所以说当使用集合进行接收时需要使用@RequestParam注解绑定参数关系。

日期参数

前端经常会传递一些日期时间类型的参数,比如:用户生日、入职日期、操作时间等,这些都是很常见的情况,这些时间参数可以根据需要接收并封装到Date或LocalDateTime等时间类中使用,但是由于日期的格式多种多样,服务端不好判断,所以说在接收的时候需要使用@DateTimeFormat注解中的pattern属性指定接收的日期格式是什么样子的 (@DateTimeFormat中pattern中的日期格式必须和前端传递的日期格式相同,否则无法成功接收)。

假设前端传递的时间参数是:2024-12-04 21:05:00,那么@DateTimeFormat的pattern就应该是:yyyy-MM-dd HH:mm:ss,这样才可以成功接收到这个时间参数。

java 复制代码
@RequestMapping("/date")
public String getDateParameter(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
    System.out.println(time);
    return "现在时间是" + time;
}

注意:pattern中的时间格式必须和时间参数的格式完全一致,否则直接报错,并且接收日期参数的形参名也必须和传递的时间参数完全一致,否则也无法成功接收。

相关推荐
CoderCodingNo1 分钟前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
陳10307 分钟前
C++:红黑树
开发语言·c++
一切尽在,你来13 分钟前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++
泉-java14 分钟前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
Charlie_lll24 分钟前
力扣解题-移动零
后端·算法·leetcode
weixin_4997715533 分钟前
C++中的组合模式
开发语言·c++·算法
初级代码游戏34 分钟前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
_waylau38 分钟前
鸿蒙架构师修炼之道-架构师的职责是什么?
开发语言·华为·harmonyos·鸿蒙
zfoo-framework42 分钟前
帧同步和状态同步
java
charlotte1024102444 分钟前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络