Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringMVC-@RequestBody注解的使用

SpringMVC-@RequestBody注解的使用

原创
作者头像
程序员NEO
发布于 2023-10-01 12:08:46
发布于 2023-10-01 12:08:46
2790
举报

@RequestBody 的作用

默认情况下我们发送的请求内容的类型都是 Content-Type 编码的而不是 application/x-www-form-urlencoded 类型的编码。

可以直接使用 @RequestParam 注解来接收参数。如果不是 Content-Type 也不是 application/x-www-form-urlencoded 编码的内容,例如 application/json, application/xml 等,而这个时候可以使用 @RequestBody 注解来接收。

使用 @RequestBody

发送 JSON 参数

代码语言:java
AI代码解释
复制
<script>
    $(function () {
        $("#formBtn").click(function () {
            let url = "${pageContext.request.contextPath}/formJson";
            let jsonString = {username: "BNTang", age: 23};

            $.ajax({
                type: "post",
                url: url,
                data: JSON.stringify(jsonString),
                dataType: 'json',
                contentType: 'application/json',
                success: function (data) {
                    alert(data);
                }
            });
        });
    });
</script>

修改 MyFirstController 内容如下。

代码语言:java
AI代码解释
复制
/**
 * @author: BNTang
 */
@Controller
public class MyFirstController {
    @RequestMapping("/formJson")
    @ResponseBody
    public String formJson(@RequestBody User user){
        System.out.println(user);
        return "success";
    }
}

重启工程发送请求,查看控制台内容如下。

发送二进制流

修改 index.jsp 内容如下。

代码语言:java
AI代码解释
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>@RequestBody</title>
</head>
<body>
<form id="myForm" action="${pageContext.request.contextPath}/myFile" method="post" enctype="multipart/form-data">
    <input type="text" name="desc"/>
    <br/>
    <input type="file" name="wj"/>
    <br/>
    <input type="submit" value="提交"/>
</form>
</body>
</html>

修改 MyFirstController 添加内容如下。

代码语言:java
AI代码解释
复制
/**
 * @author: BNTang
 */
@Controller
public class MyFirstController {
    @RequestMapping("/myFile")
    @ResponseBody
    public String myFile(@RequestBody String body) {
        System.out.println(body);
        return body;
    }
}

重启工程请求页面发送请求效果如下。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
SpringMVC-@RequestMapping相关属性
如果没有写,则没有限制,POST 与 GET 都可以请求到对应的方法,如果指定了请求类型,则必须得是相应的请求类型才能访问到对应的方法。
程序员NEO
2023/10/01
1350
SpringMVC-@RequestMapping相关属性
SpringMVC-传值方式
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,request对象的setAttribute方法的作用:用来在一个请求过程中传递处理的数据。使用方法与model一样
程序员NEO
2023/10/01
2180
SpringMVC-传值方式
SpringMVC-@RequestHeader注解
程序员NEO
2023/10/01
1500
SpringMVC-@RequestHeader注解
form标签
在使用 SpringMVC 的时候我们可以使用 Spring 封装的一系列表单标签,这些标签都可以访问到 Model 中的内容。
程序员NEO
2023/10/01
2410
form标签
SpringMVC-@PathVariable注解与REST风格请求
REST 即 Representational State Transfer(资源)表现层状态转化,用 URL 定位资源,用 HTTP 描述操作,是目前最流行的一种互联网软件架构,它的结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用,使用POST,DELETE,PUT,GET 分别对应 CRUD,Spring3.0 开始支持 REST 风格的请求。
程序员NEO
2023/10/01
2040
SpringMVC-@PathVariable注解与REST风格请求
SpringMVC:进阶
SpringMVC 默认用 MappingJackson2HttpMessageConverter 对 JSON 数据进行转换,需要加入 Jackson 的包;同时在 spring-mvc.xml 使用 <mvc:annotation-driven />
RendaZhang
2020/09/16
9780
SpringMVC:进阶
@RequestBody出现请求415问题
首先之前也遇到过这样的问题,但是稀里糊涂的最后虽然bug修复了,但是不知道是啥原因,今天又遇到了同样的问题。
全栈程序员站长
2022/09/07
1.2K0
SpringMVC-接收参数
程序员NEO
2023/10/01
2420
SpringMVC-接收参数
SpringMVC详解(六)------与json交互
  Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛。那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 js
IT可乐
2018/01/04
1.3K0
SpringMVC详解(六)------与json交互
12-SpringMVC的请求
服务器端要获得请求的参数,有时还需要对获得的数据进行封装,SpringMVC可以接收的参数如下:
Ywrby
2022/10/27
7570
12-SpringMVC的请求
SpringBootRestFul快速入门
SpringBootRestFul 1.什么是 RESTFul RESTful 是一种软件架构风格、设计风格,而不是标准。 只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风 格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 当前阶段可以理解为 使用请求方式(POST,GET,PUT,DELETE)来定位方法的一种请求路径写法.
Maynor
2021/04/09
6730
浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别
国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法,此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。
全栈程序员站长
2022/09/01
4770
Spring MVC框架:第十一章:Ajax
在进行Ajax操作时,SpringMVC会需要将JSON数据和Java实体类进行相互转换,为了实现这个效果需要额外加入jackson-all-1.9.11.jar
Java廖志伟
2022/09/28
7500
Spring MVC框架:第十一章:Ajax
Spring mvc文件上传实现
**3.**表单的enctype属性是多部分表单形式:enctype=“multipart/form-data”
一只胡说八道的猴子
2020/10/18
5840
Spring mvc文件上传实现
SpringMVC -- 必知必会
SpringMVC基于模型--视图--控制器(Model-View-Controller,MVC)模式实现,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持RESTful编程风格的请求。SpringMVC是基于方法设计的,相比基于类设计的Struts2要稍微快一些。
宋先生
2019/07/18
1.4K0
SpringMVC -- 必知必会
day63_SpringMVC学习笔记_01
(1)使用eclipse,创建一个动态的web工程   其中Dynamic web module version版本选择 2.5,这样兼容性好一些;   Default output folder设置为 WebRoot\WEB-INF\classes;   Content directory设置为 WebRoot;   更改JRE System Library[J2SE-1.5]为 JRE System Library[jre1.7.0_80];   删掉没用的库:EAR Libraries;   增加服务器运行环境库 Server Runtime,不然jsp文件会报错。
黑泽君
2018/11/29
8150
day63_SpringMVC学习笔记_01
详述 @ResponseBody 和 @RequestBody 注解的区别[通俗易懂]
在详@ResponseBody和@RequestBody注解之前,我们先了解一下@RequestMapping注解,@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法。例如,
全栈程序员站长
2022/08/24
6940
服务器表单校验
为什么后端要做表单的校验呢,如果只使用前端来校验的话,如果浏览器把 JS 给禁用掉, 就完犊子啦
程序员NEO
2023/10/01
2690
服务器表单校验
@RequestBody, @ResponseBody 注解理解
自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, @ResponseBody 这两个注解就非常好用,下面详细介绍用法:
希希里之海
2019/08/20
1.5K0
SpringMVC-JSON数据格式的处理
当前端使用 Ajax 发送请求时,服务器要以 JSON 的数据格式来响应给浏览器。
程序员NEO
2023/10/01
2470
SpringMVC-JSON数据格式的处理
相关推荐
SpringMVC-@RequestMapping相关属性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档