@ResponseBody 和 @RequestBody以及@PathVariable的作用

news/2023/11/30 2:49:12

一、@ResponseBody

@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

@ResponseBody的作用是将后端以return返回的javabean类型数据转为json类型数据。(后端向前端传数据)

案例:

前端异步请求:

function loginAction() {// 获取用户输入的账号和密码var name = $('#count').val();var password = $('#password').val();$.ajax({url : 'account/login',type : 'post',// data对象中的属性名要和服务端控制器的参数名一致 login(name, password)data : {'name' : name,'password' : password},dataType : 'json',success : function(result) {if (result.state == 0) {// 登录成功,设置cookie并跳转edit.htmladdCookie('userId', result.data.id);addCookie('nick', result.data.nick);location.href = 'edit.html';} else {// 登录失败var msg = result.message;$('#sig_in').next().html(msg);$('#sig_in').next().css("color", "red");}},error : function(e) {alert("系统异常");}});$('#password').val("");
}

后端业务逻辑:

@RequestMapping("/login")
@ResponseBody
public Object login(String name, String password, HttpSession session) {user = userService.checkLogin(name, password);session.setAttribute("user", user);return new JsonResult(user);
}

二、@RequestBody

@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。

@RequestBody的作用是将前端传来的json格式的数据转为自己定义好的javabean对象(前端向后端传递数据)

例如上方后端业务逻辑可以改为:

@RequestMapping("/login.do")
@ResponseBody
public Object login(@RequestBody User loginUuser, HttpSession session) {user = userService.checkLogin(loginUser);session.setAttribute("user", user);return new JsonResult(user);
}

三、@PathVariable

@PathVariable的作用是获取url中的动态参数,常用于RestFul风格的编程。通过这种方式,前端可以将参数写在url中
例如:通过id获得用户信息,前端的url可以表示为

http://localhost:8080/getUser/1 这个1就是想要查询的用户id

后端通过@PathVariable来接收这个动态参数

    @GetMapping("/getUser/{id}")public User getUser(@PathVariable("id") String id){return userService.getUserById(id);}

http://www.ppmy.cn/news/1096528.html

相关文章

【UE】材质描边、外发光、轮廓线

原教学视频链接: ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili 步骤 1. 首先新建一个材质,这里命名为“Mat_outLine” 在此基础上创建一个材质实例 2. 在视口中添加一个后期处理体积 设置后期处理体积为无限范围 点击添加一个数组 选择“资产引用”…

关于el-date-picker组件修改输入框以及下拉框的样式

因为业务需求,从element plus直接拿过来的组件样式和整体风格不搭,所以要修改样式,直接deep修改根本不生效,最后才发现el-date-picker组件有一个popper-class属性,通过这个属性我们就能够修改下拉框的样式,…

Killing LeetCode [946] 验证栈序列

Description 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 Intro Ref Link:http…

2023如何推广外贸独立站?

答案是:2023外贸独立站推广可以选择谷歌SEO谷歌Ads双向运营。 在2023年,外贸独立站的推广方式已经不再是过去简单的搜索引擎优化或广告推送。 现代的推广手段需要更多地涵盖多样性和针对性,从而确保可持续的客流和利润增长。 本文将深入探…

LeetCode 15 三数之和

题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目解析 // 1. 排序双指针 // 2. 固定一个值nums[i] 然后去剩下的位置去找 两数之和符合nums[j]nums[k]是否等于-nums[i] // 3. 细节问题:由于题目中是不可以包含重复的三元组的…

【word技巧】如何在word文件中方框打对勾?

Word文件制作了调查问卷或者信息表之类的文件,总是少不了有需要打勾的选项,如果打印成了纸质文件打勾就简单了,但是在word文件中应该如何在方框中打√符号呢?今天分享三个方法。 方法一: 先输入一个大写的R&#xff…

医院空调冷热源设计方案VR元宇宙模拟演练的独特之处

作为一个备受关注的技术-元宇宙,毋庸置疑的是,因为建筑本身契合了时尚、前卫、高端、虚拟、科幻、泛在、协作、互通等元素特征,因此在建筑行业更需要元宇宙,以居民建筑环境冷热源设计来说,元宇宙会打破既定的现实阻碍和…

OpenCV之形态学操作

形态学操作包含以下操作: 腐蚀 (Erosion)膨胀 (Dilation)开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat) 其中腐蚀和膨胀操作是最基本的操作,其他操作由这两个操作变换而来。 腐蚀 用一个结构元素…

互联网摸鱼日报(2023-09-07)

互联网摸鱼日报(2023-09-07) 36氪新闻 慕尼黑车展纪实:德系车略显“紧张” 隆基全力押注BC,光伏又要变天了? 苹果Vision Pro也逃不过Windows XP系统 官宣造车两年后,小米仍在等待重估 抖音苹果店开业,卖iPhone抢热…

【C++】详解红黑树并模拟实现

前言: 上篇文章我们一起学习了AVL树比模拟实现,我们发现AVL树成功地把时间复杂度降低到了O(logN)。但是同时我们不难发现一个问题,在构建AVL树中我们也付出了不小的代价,频繁的旋转操作导致效率变低。为了解决这个问题&#xff0c…

前端权限管理(完成流程细致到按钮)

路由权限方式1 动态路由: 登录后, 后台会返回用户对应的权限信息,然后筛选有权限访问的路由,调用addRoutes 动态添加路由。然后在路由全局路由守卫除了一些不需要权限的页面以外都进行权限判断。 路由权限方式2 在路由配置meta &a…

每日刷题-2

目录 一、选择题 二、编程题 1、倒置字符串 2、排序子序列 3、字符串中找出连续最长的数字串 4、数组中出现次数超过一半的数字 一、选择题 1、 题目解析: 二维数组初始化的一般形式是: 数据类型 数组名[常量表达式1][常量表达式2] {初始化数据}; 其…

蓝桥杯打卡Day5

文章目录 日志排序重复者 一、日志排序IO链接 本题思路:本题就是根据就是排序的知识点&#xff0c;在sort内部可以使用仿函数来改变此时排序规则。 #include <bits/stdc.h>const int N10010; int n; std::string logs[N];int main() {std::ios::sync_with_stdio(false)…

【GAN小白入门】Semi-Supervised GAN 理论与实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊🚀 文章来源:K同学的学习圈子论文原文:Semi-Supervised Learning with Generative Adversarial Networks.pdf在学习GAN的时候你有没有想过这样一个问题呢,如果我们生成的图像是带有标签的,例如数…

飞凌嵌入式受邀亮相2023中国国际数字经济博览会

9月6日&#xff0c;由工信部、国家发改委和河北省人民政府共同主办的2023中国国际数字经济博览会在石家庄国际会展中心&#xff08;正定&#xff09;开幕&#xff0c;近500家参展企业携自家的“黑科技”展品集中亮相&#xff0c;赋能智慧应用新场景&#xff0c;为观众带来了一场…

java开发之个人微信的二次开发

简要描述&#xff1a; 获取收藏详细信息 请求URL&#xff1a; http://域名地址/weChatFavorites/getFavItem 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a;…

CDN+GitHub搭建图床

前期搭建博客的时候&#xff0c;老是遇到图片无法加载、加载出错等等问题&#xff0c;很是烦恼。于是想搭建一个图床&#xff0c;进行个人博客图片的存储、显示使用。 ​ 利用GitHubjsDelivrPicGo搭建免费图床&#xff0c;CDN图床就是这么朴实无华&#xff0c;是基于免费CDN与免…

word转PDF文件变小,图片模糊

word论文29M&#xff0c;文件——另存为——只有1.5M左右&#xff0c;图片压缩严重&#xff0c;图片看不清。 word中很多大图&#xff0c;5M一张的图&#xff0c;所以word很大。 找了很多方法&#xff0c;转换后都在2M左右&#xff0c;勉强可以。 直到找到了这个&#xff0c…

企业小件固定资产怎么管理,有什么有效方式?

小件固定资产是指价值较低、使用寿命较短的固定资产&#xff0c;一般用于生产、制造、维修等领域。 常见的行业中广泛使用小件固定资产&#xff1a;   制造业&#xff1a;小件固定资产在制造业中应用广泛&#xff0c;如机器设备、工具、测量仪器等。 建筑业&#xff1a;小件…

解决报错之org.aspectj.lang不存在

一、IDEA在使用时&#xff0c;可能会遇到maven依赖包明明存在&#xff0c;但是build或者启动时&#xff0c;报找不存在。 解决办法&#xff1a;第一时间检查Setting->Maven-Runner红圈中的√有没有选上。 二、有时候&#xff0c;明明依赖包存在&#xff0c;但是Maven页签中…
最新文章