当前位置: 首页 > article >正文

【Spring MVC篇】参数的传递及json数据传参

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【Spring MVC】
本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌
在这里插入图片描述

目录

  • 一、普通参数的传递
    • 后端参数重命名
  • 二、POJO参数的传递
  • 三、数组参数的传递
  • 四、集合参数的传递
  • 五、json数据传参(重点)

一、普通参数的传递

举栗:
在这里插入图片描述
在这里插入图片描述

后端参数重命名

举栗子1:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传递的参数必须和RequestParam注解修饰的参数相同,将这个参数称之为必传参数。
可以使用required = falseRequestParam注解修饰的参数设置为非必传参数。

二、POJO参数的传递

在这里插入图片描述

三、数组参数的传递

请求中,同一个参数有多个时,浏览器会帮我们封装成一个数组。

在这里插入图片描述
在这里插入图片描述
元素之间也可以使用,进行分割:
在这里插入图片描述

四、集合参数的传递

在这里插入图片描述

在这里插入图片描述

解释:在使用Spring MVC框架处理请求时默认会将请求参数当作单个的字符串值进行处理,而不会自动解析成集合。通过显式地指定@RequestParam注解,并将参数名与集合类型进行匹配,可以让框架正确解析请求参数,并将其转换成对应的集合对象。

五、json数据传参(重点)

json是一个轻量级键值对形式的数据交互格式,本质是字符串(可以用来表示对象的字符串,通常称之为json字符串)。

在使用Spring MVC框架处理请求时,当请求的数据为JSON格式时,需要使用@RequestBody注解来指定该参数。

如果不添加 @RequestBody 注解,框架会默认将请求体解析为表单形式,即Content-Type为application/x-www-form-urlencoded或multipart/form-data的数据。而使用@RequestBody注解后,框架会将请求体中的数据解析为JSON格式,并绑定到方法参数上。此时就能直接获取到解析后的 Java 对象,而无需手动进行JSON的解析与转换。

举栗:
在这里插入图片描述
在这里插入图片描述

总代码如下:

package org.example.demo1.demos.web.controller;


import org.example.demo1.demos.web.Person;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;
import java.util.List;

@RequestMapping("/param")
@RestController
public class ParamController {
    @RequestMapping("/m1")
    public String m1(String name,Integer age) {
        return "普通参数的传递:name->" + name + " age->" + age;
    }

    @RequestMapping("/m2")
    public String m2(Person person) {
        return "对象参数的传递:person-> " + person.toString();
    }

    @RequestMapping("/m3")
    public String m3(@RequestParam(value = "name",required = false) String username, Integer age) {
        return "普通参数的传递:name->" + username + " age->" + age;
    }

    @RequestMapping("/m4")
    public String m4(String[] arrayParam) {
        return "数组传递参数:arrayParam-> " + Arrays.toString(arrayParam);
    }

    @RequestMapping("/m5")
    public String m5(@RequestParam List<String> listParam) {
        return "集合传递参数:listParam-> " + listParam;
    }

    @RequestMapping("/m6")
    public String m6(@RequestBody Person person) {
        return "接收的数据person:-> " + person.toString();
    }
}

好了,以上就是本文的全部内容了。希望各位友友可以一键三连哈!!!
在这里插入图片描述


http://www.kler.cn/a/233499.html

相关文章:

  • 大数据技术之HBase中的HRegion
  • 第8章利用CSS制作导航菜单
  • 【贪心算法】——力扣763. 划分字母区间
  • 零基础玩转IPC之——海思平台实现P2P远程传输实验(基于TUTK,国科君正全志海思通用)
  • Spring Boot 核心配置文件
  • 障碍检测与避障控制 ROS2机器人
  • 时序预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型
  • Bert下载和使用(以bert-base-uncased为例)
  • 幻兽帕鲁服务器怎么更新?进入游戏显示:加入的比赛正在运行不兼容的版本,请尝试升级游戏版本(阿里云)
  • python智慧养老系统—养老信息服务平台vue
  • js手写Promise(下)
  • Java编程构建高效二手交易平台
  • Python 数组计算模块 NumPy快速入门 这篇就够了
  • Days 23 ElfBoard 板git版本管理工具
  • 多维时序 | MATLAB实现基于CNN-LSSVM卷积神经网络-最小二乘支持向量机多变量时间序列预测
  • (已解决)在vue路由中:Vue.use(VueRouter)和Vue.use(Router);有什么区别?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之StepperItem组件
  • 微服务OAuth 2.1扩展额外信息到JWT并解析(Spring Security 6)
  • Unity入门学习
  • 类与结构体(3)
  • 酷开科技,打造非凡的生活体验
  • 开源微服务平台框架的特点是什么?
  • 前端开发:(四)JavaScript入门
  • 前端 > JS 笔试题面试考题(11-15)
  • win32编程系统BUG(Win32 API中的WM_SETTEXT消息)
  • Java集合框架(包装类、泛型)