iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringMVC之@requestBody的作用是什么
  • 442
分享到

SpringMVC之@requestBody的作用是什么

2023-07-06 00:07:36 442人浏览 泡泡鱼
摘要

这篇文章主要介绍“springMVC之@requestBody的作用是什么”,在日常操作中,相信很多人在springmvc之@requestBody的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S

这篇文章主要介绍“springMVC之@requestBody的作用是什么”,在日常操作中,相信很多人在springmvc之@requestBody的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringMVC之@requestBody的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    @requestBody的作用及说明

    @requestBody注解常用来处理content-type不是默认的application/x-www-fORM-urlcoded编码的内容,比如说:application/JSON或者是application/xml等。

    一般情况下来说常用其来处理application/json类型。  

    通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然也可以将其分别绑定到对应的字符串上。    

    例如说以下情况:

    $.ajax({                url:"/login",                type:"POST",                  data:'{"userName":"admin","pwd","admin123"}',              content-type:"application/json charset=utf-8",                  success:function(data)             {                          alert("request success ! ");                   }    }); @requestMapping("/login")      public void login(@requestBody String userName,@requestBody String pwd){        System.out.println(userName+" :"+pwd);    }

    这种情况是将JSON字符串中的两个变量的值分别赋予了两个字符串,但是呢假如我有一个User类,拥有如下字段:      

    String userName;  String pwd;   

    那么上述参数可以改为以下形式:@requestBody User user 这种形式会将JSON字符串中的值赋予user中对应的属性上    

    需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的。 

    在一些特殊情况@requestBody也可以用来处理content-type类型为application/x-www-form-urlcoded的内容,只不过这种方式不是很常用,在处理这类请求的时候,@requestBody会将处理结果放到一个MultiValueMap<String,String>中,这种情况一般在特殊情况下才会使用,例如Jquery easyUI的datagrid请求数据的时候需要使用到这种方式、小型项目只创建一个POJO类的话也可以使用这种接受方式。

    作用:     

    • i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;     

    • ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

    使用时机:

    A) GET、POST方式提时, 根据request header Content-Type的值来判断:   

    • application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);   

    • multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);   

    • 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理); 

    B) PUT方式提交时, 根据request header Content-Type的值来判断:   

    • application/x-www-form-urlencoded, 必须;   

    • multipart/form-data, 不能处理;   

    • 其他格式, 必须;

    • 说明:request的body部分的数据编码格式由header部分的Content-Type指定;

    使用@RequestBody浏览器报415错误

    最近在写一个前后端分离项目,前后端数据交互都使用json的格式,在使用SpringMVC的@RequestBody时,一直报415的错误,意思就是后台无法处理content-type=application/json格式的数据,我后台已经使用@RequestBody,就是不行,但是如果参数类型为String就可以接收,实体类的就是不行,看了很多教程,冲浪了一天,终于找到了解决方案。

    解决方式

    1。在项目中导入两个jar

        <dependency>      <groupId>org.codehaus.jackson</groupId>      <artifactId>jackson-mapper-asl</artifactId>      <version>1.9.13</version>    </dependency>     <dependency>      <groupId>org.codehaus.jackson</groupId>      <artifactId>jackson-core-asl</artifactId>      <version>1.9.13</version>    </dependency>

    在app-servlet.xml(你的springmvc配置文件),加入一行配置 

    <mvc:annotation-driven/>

    或者配置一个适配器(两种方式选一个即可,我是使用的上面的方式)

        <bean class="org.springframework.WEB.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">        <property name="messageConverters">            <list>                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>            </list>        </property>    </bean>

    这样就解决了415的报错。

    附上我的controller层的代码。

    @RestController@CrossOriginpublic class LoginController {    @PostMapping("/loginPost")    public String loginPost(@RequestBody User user,@RequestHeader HttpHeaders header){        System.out.println(header.getContentType());        System.out.println(user.getName());        System.out.println(user.getPassword());        return "success";    }}

    到此,关于“SpringMVC之@requestBody的作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: SpringMVC之@requestBody的作用是什么

    本文链接: https://www.lsjlt.com/news/356585.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringMVC之@requestBody的作用是什么
      这篇文章主要介绍“SpringMVC之@requestBody的作用是什么”,在日常操作中,相信很多人在SpringMVC之@requestBody的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
      99+
      2023-07-06
    • SpringMVC之@requestBody的作用及说明
      目录@requestBody的作用及说明使用@RequestBody浏览器报415错误解决方式总结  @requestBody的作用及说明 1、@requestB...
      99+
      2023-05-15
      SpringMVC @requestBody @requestBody的作用 @requestBody说明
    • SpringMVC @RequestBody的使用解析
      目录SpringMVC @RequestBody的使用@RequestBody使用的一些注意事项SpringMVC @RequestBody的使用 Spring mvc是一个非常轻量...
      99+
      2024-04-02
    • SpringMVC @RequestBody的使用分析
      这篇文章主要介绍“SpringMVC @RequestBody的使用分析”,在日常操作中,相信很多人在SpringMVC @RequestBody的使用分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spr...
      99+
      2023-06-25
    • 基于@RequestBody和@ResponseBody及Stringify()的作用是什么
      这篇文章主要为大家展示了“基于@RequestBody和@ResponseBody及Stringify()的作用是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于@RequestBody和...
      99+
      2023-06-15
    • springmvc中CharacterEncodingFilter的作用是什么
      CharacterEncodingFilter的作用是设置请求和响应的字符编码。在Spring MVC中,CharacterEnco...
      99+
      2023-09-06
      springmvc
    • SpringMVC中ModelAndView的作用是什么
      ModelAndView在Spring MVC中用于封装控制器处理方法的返回结果。它包含两部分内容:1. Model:用于存储处理方...
      99+
      2023-10-12
      SpringMVC
    • springmvc核心类的作用是什么
      Spring MVC核心类的作用是处理请求和响应的流程,将请求映射到相应的处理方法并返回响应。它提供了一个基于模型-视图-控制器(M...
      99+
      2023-08-18
      springmvc
    • springmvc @RequestBody String类型参数的使用
      目录springmvc @RequestBody String类型参数springmvc用Map接收请求参数分析第一种情况,什么也不设置,无参数传递第二种情况,加个参数试试 =>...
      99+
      2024-04-02
    • DispatcherServlet在springmvc中的作用是什么
      本篇文章给大家分享的是有关DispatcherServlet在springmvc中的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、程序(一)web.xml文件中的...
      99+
      2023-05-31
      springmvc dispatcherservlet
    • SpringMVC拦截器的作用是什么
      本篇内容主要讲解“SpringMVC拦截器的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC拦截器的作用是什么”吧!目录web.xml文件springMVC配置文件:c...
      99+
      2023-06-20
    • springmvc注解驱动的作用是什么
      Spring MVC注解驱动的作用是简化和加速开发过程,提高代码的可读性和可维护性。通过使用注解,可以避免繁琐的配置文件,减少开发人...
      99+
      2024-02-29
      springmvc
    • springmvc框架的主要作用是什么
      Spring MVC框架的主要作用是帮助开发人员快速、高效地构建Web应用程序。它提供了一种基于模型-视图-控制器(MVC)架构的开...
      99+
      2023-10-23
      springmvc
    • springmvc的工作流程是什么
      Spring MVC的工作流程如下:1. 客户端发送HTTP请求到DispatcherServlet。2. DispatcherSe...
      99+
      2023-08-18
      springmvc
    • SpringMVC工作原理是什么
      这篇“SpringMVC工作原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spr...
      99+
      2024-04-02
    • SpringMVC有什么作用
      这篇“SpringMVC有什么作用”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“SpringMVC有什么作用”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们...
      99+
      2023-06-26
    • SpringMVC MethodArgumentResolver的作用与实现方法是什么
      这篇文章主要介绍“SpringMVC MethodArgumentResolver的作用与实现方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC Meth...
      99+
      2023-07-06
    • tensorflow之embedding的作用是什么
      TensorFlow中的embedding层用于将离散的输入数据(如单词、类别等)映射到连续的表示空间中,从而将高维稀疏的数据转换为...
      99+
      2024-04-02
    • Java之contextConfigLocation的作用是什么
      contextConfigLocation是Spring框架中用于指定配置文件路径的属性。它主要用于指定Spring应用上下文中的配...
      99+
      2023-08-17
      Java
    • android之TranslateAnimation的作用是什么
      TranslateAnimation是Android中的动画类,用于实现平移动画效果。它可以将一个视图对象从一个位置移动到另一个位置...
      99+
      2023-09-21
      android
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作