springMVC的@RequestBody注解使用

如果没有特殊的设置,无论用什么样的http请求方法,只要携带body参数,用@RequestBody都是可以获取到body的内容的

参数是json字符串格式,使用方式有两种

@RequestBody只有一个属性,required默认等于true,如果不设置required属性,就默认必须传body体,否则会报400错误,如果设置了body体,但是没有设置header或者设置了header:content-type!=application/json ,会报415错误

第一种:使用@RequestBody注解一个字符串变量

@Controller@RequestMapping("/springmvc/test/RequestBody")public class RequestBodyTestController {
@RequestMapping(value="/test3")
    @ResponseBody
    public Result testBody3(@RequestBody(required=false) String person){
        if(person==null){
            return  Result.success("testBody3 test pass,person="+person);
        }else {
            JSONObject jsonObject = JSONObject.parseObject(person);
            return Result.success("testBody3 test pass,username=" + jsonObject.getString("name"));
        }
    }}

第二种:使用@RequestBody注解一个对象,请求的时候记得设置header:content-type=application/json ,否则会报415错误,而且json字符串中的参数名要跟对象的属性名相同才能取到值

//定义一个Person类public class Person{
    private int id;
    private String name;
     public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId(){
         return id;
     }
    public void setId(int id){
         this.id=id
    }
}
@Controller@RequestMapping("/springmvc/test/RequestBody")public class RequestBodyTestController {

@RequestMapping(value="/test1")

@ResponseBody
public Result testBody1(@RequestBody Person person){    if(person==null){        return  Result.success("test1 test pass,person="+person);    }else {        return Result.success("test1 test pass,id="+person.getId()+",username=" + person.getName());    }}}
 

原文地址:https://www.cnblogs.com/zhaijing/p/10337481.html

时间: 2024-10-14 09:55:02

springMVC的@RequestBody注解使用的相关文章

springmvc中@requestbody注解接收请求参数

一.POST请求的四种常用方式 1.application/x-www-form-urlencoded 浏览器原生的表单,值为urlencoded之后的  key1=value1&key2=value2...... 2.multipart/form-data 浏览器原生的文件表单,用于传输文件 3.application/json 常用的请求头格式,值为json串  {"key1":"value1","key2":"value2

SpringMVC 参数绑定注解解析

本文介绍了用于参数绑定的相关注解. 绑定:将请求中的字段按照名字匹配的原则填入模型对象. SpringMVC就跟Struts2一样,通过拦截器进行参数匹配. 代码在 https://github.com/morethink/MySpringMVC URI模板变量 这里指uri template中variable(路径变量),不含queryString部分 @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId

SpringMVC之基于注解的Controller

参考博客:https://www.cnblogs.com/qq78292959/p/3760560.html Controller注解: 传统风格的Controller需要实现Controller接口,而现在我们只需要用注解就行了. 基于注解的控制器有几个优点,1.一个控制器可以处理多个action(动作),而一个实现 Controller接口的控制器只能处理一个动作.    2.基于注解的控制器请求映射不需要存储在配置文件中,使用RequesetMapping注解类型就可以对一个方法进行请求处

SpringMVC的常用注解

springmvc的常用注解: 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@Reques

springmvc:常用注解

一.RequestParam注解 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须提供此参数.默认值:true.表示必须提供,如果不提供将报错. jsp中的代码: 1 <!-- requestParams注解的使用 --> 2 <a href="springmvc/useRequestParam?name=test">requestParam注解</a> 1 @Requ

Spring SpringMVC SpringBoot SpringCloud 注解整理大全

Spring SpringMVC SpringBoot SpringCloud 注解整理 这段时间学习了一些框架,里面用到了很多注解,记不住所以把遇到的注解都整理了下来,如果有不对的地方欢迎指正,我会修改的φ(??∀??)? Spring 常用配置: @import :导入配置类 @Scope : 新建Bean的实例 @Scope("prototype") 声明Scope 为 Prototype @Value : 属性注入 @Value ("我爱你") -->

SpringMVC轻松学习-注解的使用(三)

根据上一讲的例子,我们下面就注解的使用进行详细说明. 我们采用sprng MVC开发项目时,通常都会采用注解的方式,这样可以大大提高我们的开发效率.实现零配置.下面我们从零开始重新做一个spring MVC的配置.这个项目完全采用注解的方式开发.同时,我们以后的spring MVC项目也都会采用注解的方式. 修改web.xml,文件内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?xml version=

@requestBody注解的使用

1.@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等.一般情况下来说常用其来处理application/json类型. 2. 通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上. 例如说以下情况: $.ajax({ url:"/login",

SpringMVC自动扫描@Controller注解的bean

若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/>放置在dispatcherservlet的配置文件中,若配置在ContextLoaderListener的配置文件applicationContext.xml中则不起作用 <!-- 上下文配置文件 --> <context-param> <param-name>co