Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)

1. 直接接值

只要形参数名和类型与传递参数相同,即可自动接收!

@Controller
@RequestMapping("param")
public class ParamController {/*** 前端请求: http://localhost:8080/param/value?name=xx&age=18** 可以利用形参列表,直接接收前端传递的param参数!*    要求: 参数名 = 形参名*          类型相同* 出现乱码正常,json接收具体解决!!* @return 返回前端数据*/@GetMapping(value="/value")@ResponseBodypublic String setupForm(String name,int age){System.out.println("name = " + name + ", age = " + age);return name + age;}
}

2. @RequestParam注解

可以使用 @RequestParam 注释将 Servlet 请求参数(即查询参数或表单数据)绑定到控制器中的方法参数。@RequestParam中的value值只要与传递参数名相同,Spring MVC就可以将数据接入到注解对应的形参中。

@RequestParam使用场景:

  • 指定绑定的请求参数名
  • 要求请求参数必须传递
  • 为请求参数提供默认值

基本用法:

 /*** 前端请求: http://localhost:8080/param/data?name=xx&stuAge=18* *  使用@RequestParam注解标记handler方法的形参*  指定形参对应的请求参数@RequestParam(请求参数名称)*/
@GetMapping(value="/data")
@ResponseBody
public Object paramForm(@RequestParam("name") String name, @RequestParam("stuAge") int age){System.out.println("name = " + name + ", age = " + age);return name+age;
}

默认情况下,使用此批注的方法参数是必需的,但您可以通过将 @RequestParam 批注的 required 标志设置为 false如果没有没有设置非必须,也没有传递参数会出现400错误。

将参数设置非必须,并且设置默认值:

@GetMapping(value="/data")
@ResponseBody
public Object paramForm(@RequestParam("name") String name, @RequestParam(value = "stuAge",required = false,defaultValue = "18") int age){System.out.println("name = " + name + ", age = " + age);return name+age;
}

3. 特殊场景接值

3.1 一名多值

有时候可能会出现一个参数名有多个值,例如多选框,提交的数据的时候一个key对应多个值,我们可以使用集合进行接收。这种情况下,我们将参数类型定义为列表,并添加@RequestParam注解指定即可。

   /*** 前端请求: http://localhost:8080/param/mul?hbs=吃&hbs=喝**  一名多值,可以使用集合接收即可!但是需要使用@RequestParam注解指定*/@GetMapping(value="/mul")@ResponseBodypublic Object mulForm(@RequestParam List<String> hbs){System.out.println("hbs = " + hbs);return hbs;}

3.2 实体接收

Spring MVC 是 Spring 框架提供的 Web 框架,它允许开发者使用实体对象来接收 HTTP 请求中的参数。通过这种方式,可以在方法内部直接使用对象的属性来访问请求参数,而不需要每个参数都写一遍。下面是一个使用实体对象接收参数的示例:

定义一个用于接收参数的实体类:

     public class User {private String name;private int age = 18;// getter 和 setter 略}

在控制器中,使用实体对象接收,示例代码如下:

     @Controller@RequestMapping("param")public class ParamController {@RequestMapping(value = "/user", method = RequestMethod.POST)@ResponseBodypublic String addUser(User user) {// 在这里可以使用 user 对象的属性来接收请求参数System.out.println("user = " + user);return "success";}}

在上述代码中,将请求参数name和age映射到实体类属性上,要求属性名必须等于参数名!否则无法映射!而且不需要添加注解!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3-安装

Vue.js 是什么? Vue 是一套用于构建用户界面的渐进式框架. 与其他大型框架不同的是, Vue 被设计为可以自底向上逐层应用. Vue 的核心库只关注视图层, 不仅容易上手, 还便于与第三方库或既有项目整合. 另一方面, 当与现代化的工具链以及各种支持类库结合使用时, Vue 也完全能够…

数据结构 之 七大排序 (持续更新ing...)

下面算法编写的均是按照由小到大顺序进行排序版本 选择排序 思想&#xff1a; 每次遍历待排序元素的最大下标&#xff0c;与待排序元素中最后一个元素交换位置&#xff08;此时需要设置一个临时变量来存放下标&#xff09; 时间复杂度--O(n^2)空间复杂度--O(1)稳定性--不稳定 代…

TCP - 传输控制协议

TCP - 传输控制协议 是一种面向连接的可靠传输协议。 特点&#xff1a; TCP是面向连接&#xff08;虚连接&#xff09;的传输层协议。 每一条TCP连接有且只能有两个端点。 可靠、有序、无丢弃和不重复。 TCP协议提供全双工通讯。 发送缓存 存放发送方TCP准备发送的数据。T…

FDMC8200中文资料PDF数据手册引脚图参数功能介绍概述参数规格参数产品手册

产品概述&#xff1a; 此器件在一个双 Power 33 (3 mm X 3 mm MLP) 封装中包括了两个特制的 N 沟道 MOSFET。 开关节点已经内部连接&#xff0c;可实现同步降压转换器的轻松布置和布线。 控制 MOSFET (Q1) 和同步 MOSFET (Q2) 可提供最佳功率效率。 产品特性&#xff1a; Q1…

Appium官方文档常用方法介绍

Appium命令 Appium 官方文档 看云 创建Session // Java DesiredCapabilities desiredCapabilities new DesiredCapabilities(); desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3"); desiredCapabilities.setCapability(Mobile…

计算机一级word 文字处理理论+实操试题

计算机一级word 文字处理理论实操试题 单选题&#xff1a; 1、在Word编辑状态下&#xff0c;要将另一文档的内容全部添加在当前文档的当前光标处&#xff0c;应选择的操作是依次单击______。 A.“文件”选项卡和“打开”项 B.“文件”选项卡和“新建”项 C.“插入”选项卡…

1194: 最简单的题(python)

收藏 难度&#xff1a;简单 标签&#xff1a;暂无标签 题目描述 孩纸&#xff0c;珍惜吧&#xff01;这可能会是有史以来最简单的题目了、 有这样的函数F(i)i*i*i*i3*i*i*i2*i*i8*i9&#xff1b;请你找出他所有的整数函数值。 嘻嘻&#xff0c;不是这么的难题 &#xff01;…

外贸业务员的工作时间安排,抓紧收藏!

平时很多外贸业务员应该都差不多&#xff0c;大部分时间会用来不知所措的摸鱼&#xff0c;关于工作内容并无规划。今天给大家分享一个工作时间安排&#xff0c;赶紧码住&#xff01; 销售联系潜在客户时间计划表 目标:在不给潜在客户造成压力的情况下&#xff0c;建立联系并推…

AI人工智能时代,Java从业者必学科目2

精品课程推荐&#xff1a;Java版数据结构和算法AI算法课程 AI人工智能时代&#xff0c;Java从业者必学科目 精品课程推荐&#xff1a;Java版数据结构和算法AI算法课程 【点击开始学习】 学习地址&#xff1a;https://class.imooc.com/sale/fullstackalgo 在当今数字时代&a…

WEB前端作业一

作业1:生成表格 模版 <!DOCTYPE html> <html><title>作业表格一</title><body><h1><b>工商银行电子汇款单</b></h1><p><table border"1" cellspacing"0"><tr><td colspan&qu…

week07day03(power bi dax公式 零售数据业务分析)

一. 切片器(筛选)相关的三个函数 1.all &#xff08;all后面的数据意思是 不受其影响&#xff09; #ALL 筛选的是 筛选器 或 切片器#计算 销售金额 &#xff0c;并且 不受到 门店ID 控制 计算金额 CALCULATE(SUM(销售表[金额]),ALL(销售表[门店ID]))#计算 销售金额 &#x…

最小化战斗力差距——算法思路

题目链接&#xff1a;1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn) 可分析&#xff0c;把一个数组分成两组&#xff0c;求一组的最大值与另一组的最小值的差值的绝对值最小&#xff0c;可以转换为求任意两个相邻数字之间的最小插值的绝对值。 可看图示&#xff1a; package lan…

记录工作中莫名其妙的bug

1、问题&#xff1a;办公室的电脑突然除了我之外&#xff0c;都不能访问我们的线上系统了 原因&#xff1a;因为是内网&#xff0c;同事有刚刚升级了Windows11&#xff0c;配置的DNS被清了&#xff0c;还有同事换了公司的新电脑&#xff0c;还没有配DNS 位于&#xff1a;C /Win…

如何在CentOS系统部署AMH主机面板并实现无公网IP远程连接

文章目录 推荐1. Linux 安装AMH 面板2. 本地访问AMH 面板3. Linux安装Cpolar4. 配置AMH面板公网地址5. 远程访问AMH面板6. 固定AMH面板公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击…

数据库SQLServer——插入数据

1.插入数据语法 INSERT INTO table_name(column_list) VALUES (value_list); --简写 INSERT INTO table_name VALUES (value_list);INSERT table_name VALUES (value_list); 2.实例 2.1基本形式&#xff08;不安全&#xff09; insert into 学生表01 values(李明,男,1.70) …

python实现--二叉搜索树

什么是二叉搜索树 二叉搜索树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一种特殊类型的二叉树&#xff0c;它具有以下性质&#xff1a; 每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。 对于任意节点&#xff0c;其左子树中的所有节点的…

python 调用redis创建查询key

部署redis apiVersion: apps/v1 # 描述api版本&#xff0c;默认都用这个 kind: Deployment # 资源类型&#xff0c;可以配置为pod&#xff0c;deployment&#xff0c;service&#xff0c;statefulset等等 metadata: # deployment相关的元数据&#xff0c;用于描述deployment的…

LeetCode199题:二叉树的右视图(python3)

代码思路&#xff1a;深度优先搜索&#xff0c;每次总访问右子树&#xff0c;value_depth用dict存放&#xff0c;深度为索引&#xff0c;存放节点的值&#xff0c;stack从根节点[(root, 0)]开始&#xff0c;添加node和depth class Solution:def rightSideView(self, root: Opt…

深入浅出:数据库的世界 - 介绍、分类、作用与特点

一、引言 A. 数据库的普遍性与重要性 数据库是现代信息技术中不可或缺的重要组成部分&#xff0c;无论是企业、学术机构还是个人用户&#xff0c;在日常生活和工作中都会接触到数据库。它承载着海量的数据&#xff0c;为各种应用程序提供数据存储、管理和检索功能。 B. 数据…

测试工具分享:高效完成测试工作!

说在前头 在社会上&#xff0c;特别是技术圈&#xff0c;大家会有刻板印象&#xff1a;测试工作的含金量不高。因为大家觉得测试不重要&#xff0c;导致给测试的薪水也偏低&#xff1b;这又反向导致好的人才不想来测试行业&#xff0c;测试从业人员的平均水平、工作体现的价值…