请求响应:常见参数接收及封装(Json参数及路径参数)

Json参数

Json格式的数据具有轻量级、易于阅读和编写、易于解析等诸多优点。在前后端交互时,大部分情况下请求体中的数据会以JSON格式进行传递。前端的请求在请求体中携带了Json格式数据,后端程序需要对其进行解析并封装使用,而接收Json参数一般是用实体对象进行接收的:方法型参是一个实体对象,该对象中的属性名必须和Json数据中的键名相同,并且需要在该形参前使用@RequestBody注解使得Json数据能够解析并填充到该对象中。

请求参数(在请求体中定义了Json数据作为请求参数):

接收方法:

@RequestMapping("Json")
public String getJsonParameter(@RequestBody TestUser user) {System.out.println(user);return "Json数据接收成功" + user;
}

 接收Json数据的实体类:

据的键,设置对应的属性进行接收,并通过@RequestBody注解将Json数据填充到用于接收Json参数的TestUser对象中去,这时该user对象就获得了前端请求的Json参数中的所有数据。注意:用于接收Json数据的实体类中的属性必须和Json数据的键名完全相同,不然无法填充;必须在方法形参前面使用@RequestBody参数,否则也无法填充(因为不知道要将Json数据填充到那个对象中去)。

一切都设置正确之后,运行服务,进行请求,发现后端程序成功获取Json数据:

路径参数

路径参数:通过请求URL直接传递参数,参数已经成为了URL中的一部分(比如:http://localhost:8080/path/1 ) ,但同时参数也是给服务端传递的参数。路径参数常见于Restful风格(开发规范:Restful风格REST(REpresentational State Transfer),表述性状态转换, - 掘金)的请求中。接收路径参数,需要在方法的@RequestMapping的路径中使用{...}来标识该路径参数(指定路径参数的参数名),并且在形参中使用@PathVariable注解来获取路径参数。并且方法的形参名必须和{...}标识的路径参数(路径参数名)保持一致。

@RequestMapping("/path/{id}")
public String getPathParameter(@PathVariable int id) {System.out.println("成功获取路径参数:" + id);return "successful";
}

该方法通过@RequestMapping路径中的{id}将路径参数名标识为id,然后通过@PathVariable参数给形参id获取到了路径参数,形参名和标识的路径参数名必须相同,否则获取失败。

 

注意:需要在@RequestMapping中通过{...}指定路径参数,并且要在方法形参中使用@PathVariable注解获取路径参数,形参名必须和路径参数名相同,否则将无法获取;并且必须使用@PathVariable注解,否则也无法获取。

获取多个路径参数

获取多个路径参数的原理和获取单个路径参数基本一致,只是需要根据请求的路径参数个数在@RequestMapping中指定多个路径参数;并且在形参中用@PathVariable注解获取多个路径参数,注意:形参的列表中形参的顺序就是路径参数的顺序:

@RequestMapping("/path/{id}/{name}")
public String getManyPathParameter(@PathVariable int id, @PathVariable String name) {System.out.println("成功获取多个路径参数:" + id + "   " + name);return "successful";
}

 该方法在@RequestMapping中指定了两个路径参数id和name,并且在形参列表中通过@PathVariable按照顺序获取了这两个路径参数。

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

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

相关文章

大舍传媒-关于海外媒体宣发的探讨

关于海外媒体宣发的探讨 一、海外媒体宣发的重要性 在当今全球化的时代,海外媒体宣发对于企业、组织和个人来说具有至关重要的意义。通过有效的海外媒体宣发,可以提升品牌知名度,拓展国际市场,增强影响力,吸引更多的潜…

项目开发之Jenkins

文章目录 思考基础概述JenkinsMavenGit集成开发部署GitLab服务 实战1 新建任务需要的配置pipeline最后 思考 jenkis怎么连接github仓库? jenkis的作用是什么?基础 概述 定义:Jenkins是一款开源的持续集成(Continuous Integration&#xff…

在VSCode中搭建Python开发环境

在VSCode中搭建Python开发环境 1、安装 首先确保电脑已经安装好Python和VSCode。 2、安装VSCode的Python插件 3、选择python解释器 ctrlshiftP打开VSCode的命令行,输入python: select Interpreter选择合适的python版本。 4、运行代码 在windows下你可以直接使用…

Windows 11 如何配置node.js

一,官网下载 官网首页 下载最新LTS版本,比较稳定,如果想探索更新的版本去探索新的nodejs功能。 1. 下载完成后,双击运行程序,点击next 2. 勾选接受协议,点击next 3. 选择自己的安装路径(默认是…

1-12 GD32基于定时器输入捕获

前言: 基于本人对相关知识回顾与思考,仅供学习参考 目录 前言: 1.0 输入捕获 2.0 信号周期 3.0 定时器配置 4.0 定时器配置 5.0 定时器中断 后记: 1.0 输入捕获 2.0 信号周期 获取信号周期的方法,在第一次捕获与…

大数据新视界 -- Hive 元数据管理:核心元数据的深度解析(上)(27 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

刷蓝桥杯历年考题(更新至15届~)

第十五届 CA组省赛 AcWing5980.训练士兵 方法一:树状数组:O(nlogn) self-complete /*先枚举组团,后分析每个士兵,有一个特点,组团费用是固定的,那当然是让所有士兵一块训练,训练完的士兵也不会有损失当还…

合合信息智能图像处理技术,让你的设备更智能

目录 图像增强技术主要包括以下几个方面: 最近和一位朋友聊天,听到一些关于打印机的吐槽。 从20年开始,部分或者全部远程办公的企业渐渐多起来,wfh的打工人也在家添置了简易的必要办公设备,比如打印机。 在家用&…

CSS 选择器的优先级

一、基本概念 CSS 选择器的优先级决定了在样式冲突时,哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级,可以更好地控制网页元素的样式,避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…

基于Transformer的编码器-解码器图像描述模型在AMD GPU上的应用

Transformer based Encoder-Decoder models for image-captioning on AMD GPUs — ROCm Blogs 图像描述,即基于生成式人工智能(GenAI)自动生成简洁的图像文本描述,在现实世界中有着非常重要的应用。例如,图像描述可以为…

多人强化学习

Gradient Counterfactual multi-agent policy gradients 这里有个后面流传很广的算法:COMA(counterfactual multu-agent) 文中有提到最简单的policy gradient的形式是Reinforce,公式如下: ∇θ J(θ) Eτ~πθ [∑t0T ∇θ log πθ(at | …

【JuMP.jl】非线性规划

[JuMP] 03 非线性规划 非线性规划模型 非线性规划问题是线性规划问题的自然推广, 在实际的工程问题中,优化问题中的目标函数与约束不会总是线性函数,因此非线性规划的求解功能是必要的。 min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤…

力扣面试题 30 - 最小高度树

题目: 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 示例: 给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表…

【从0带做】基于Springboot3+Vue3的场馆预约系统

大家好,我是武哥,最近给大家手撸了一个基于SpringBoot3Vue3的场馆预约系统,可用于毕业设计、课程设计、练手学习,系统全部原创,如有遇到网上抄袭站长的,欢迎联系博主~ 项目演示视频和教程视频 https://ww…

mysql json整数数组去重 整数数组精确查找并删除相应数据

都是针对整数数组 。低版本可用。懒得去查找资料的可以参考下。 json整数数组查找具体数据修改或者删除: update saas_new_tms.eda_logistics_limit set service_attribute json_remove(service_attribute,json_unquote(json_search(replace(service_attribute,…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息:公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中,勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分:由所有连接在互联网上的主机组成,是用户直接使用的部分。 2、核心部分,由大量网络和路由器组成,为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…

【MySQL 进阶之路】索引的使用

5.索引的使用规则 在数据库管理系统(DBMS)中,索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略,以提高数据库的查询性能和降低资源消耗。以下是一些关键的索引使用规则: 1. …

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别: disp函数与fprintf函数的区别 输出格式的灵活性 disp函数:输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组,会按照行列形式展示;对于字符串,直接原样输出并换行。例如…

【数据中心建设资料】数据中心安全建设解决方案,数据中心整理解决方案,数据中心如何做到安全保障,数据中台全方案(Word全原件)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏系统 1.3.8…